{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 34
    },
    "id": "5YvRDeGtiGtS",
    "outputId": "9bf5ba34-2df9-4e69-c9f4-51477f3518a8"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mounted at /content/drive\n"
     ]
    }
   ],
   "source": [
    "from google.colab import drive\n",
    "drive.mount('/content/drive')\n",
    "import os\n",
    "os.chdir(\"/content/drive/My Drive/Colab Notebooks/Bi-IV/cnews文本分类\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "Yb8gYEFPiDdc"
   },
   "source": [
    "# Action1_cnews 中文文本分类\n",
    "\n",
    "使用1000训练集\n",
    "\n",
    "由清华大学根据新浪新闻RSS订阅频道2005-2011年间的历史数据筛选过滤生成     训练集 50000     验证集 5000     测试集 10000     词汇（字） 5000     10个分类，包括：'体育', '财经', '房产', '家居', '教育', '科技', '时尚', '时政', '游戏', '娱乐'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "id": "BJ-WkGe9iDdk"
   },
   "outputs": [],
   "source": [
    "# 设置数据目录\n",
    "train_file = 'cnews.train.small.txt'\n",
    "test_file = 'cnews.test.txt'\n",
    "val_file = 'cnews.val.txt'\n",
    "vocab_file = 'cnews.vocab.txt'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "id": "v8W42fcuiDdd"
   },
   "outputs": [],
   "source": [
    "import torch\n",
    "from torch import nn\n",
    "from model import TextRNN\n",
    "from cnews_loader import read_vocab,read_category,process_file\n",
    "from torch import optim"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 196
    },
    "collapsed": true,
    "id": "bW_I02jIiDdp",
    "jupyter": {
     "outputs_hidden": true
    },
    "outputId": "8a74c4cd-f2cc-4a1c-fe69-80c5dca91aca"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['体育', '财经', '房产', '家居', '教育', '科技', '时尚', '时政', '游戏', '娱乐']\n",
      "['<PAD>', '，', '的', '。', '一', '是', '在', '0', '有', '不', '了', '中', '1', '人', '大', '、', '国', '', '2', '这', '上', '为', '个', '“', '”', '年', '学', '时', '我', '地', '和', '以', '到', '出', '来', '会', '行', '发', '：', '对', '们', '要', '生', '家', '他', '能', '也', '业', '金', '3', '成', '可', '分', '多', '现', '5', '就', '场', '新', '后', '于', '下', '日', '经', '市', '前', '过', '方', '得', '作', '月', '最', '开', '房', '》', '《', '高', '9', '8', '.', '而', '比', '公', '4', '说', ')', '将', '(', '都', '资', 'e', '6', '基', '用', '面', '产', '还', '自', '者', '本', '之', '美', '很', '同', '', '7', '部', '进', '但', '主', '外', '动', '机', '元', '理', '加', 'a', '全', '与', '实', '影', '好', '小', '间', '其', '天', '定', '表', '力', '如', '次', '合', '长', 'o', '体', '价', 'i', '所', '内', '子', '目', '电', '-', '当', '度', '品', '看', '期', '关', '更', 'n', '等', '工', '然', '斯', '重', '些', '球', '此', '里', '利', '相', '情', '投', '点', '没', '因', '已', '三', '心', '特', '明', '位', '两', '法', '从', '入', '名', '万', '手', '计', '性', '事', '只', '样', '示', 'r', '种', '报', '海', '平', '数', '%', '第', '并', '色', '建', '据', '提', '商', '员', '通', '去', '民', 't', '着', '你', '片', '展', '道', '文', '演', '赛', '区', '交', '意', '政', '么', '今', '让', '起', '信', '化', '银', '记', '司', '北', '游', '科', '戏', '被', '格', '保', '及', '常', '物', '问', 's', '量', '制', '持', '果', '感', '设', '队', '无', '收', '正', '应', '？', '那', '活', '身', '式', '打', 'l', '系', '尔', '总', '京', 'A', '至', '己', '务', '受', '想', '星', '回', '留', '由', '网', '达', '认', '做', '题', '选', '费', '城', '增', '近', '华', '风', '非', '战', '布', '该', '接', '款', '项', 'S', '英', '女', '程', '导', '管', '二', '强', '证', '水', '代', '调', '少', '专', '型', '台', '给', '需', '规', '图', '周', '德', '解', '各', 'C', '向', '；', '别', '股', '东', '结', '或', '首', '士', '西', '安', '教', '变', '火', '节', '际', '任', '单', '先', '再', '观', '校', '显', '克', '组', '直', '装', '求', '才', '率', '较', '造', '使', '每', '考', '亿', '请', '流', '完', '拍', '取', '院', '线', '门', '放', '世', '住', '续', '联', '张', 'P', '息', '空', 'c', '研', '它', '十', '立', '原', '易', '整', '—', '术', '论', '消', '太', '知', '王', '质', '约', '客', '几', '配', '马', '统', '值', 'T', '头', '件', '带', '服', '她', '界', '指', 'D', '级', '企', '传', '老', '类', '始', '气', 'I', '户', '超', '育', '未', '具', 'm', '济', '低', '处', '技', '望', '把', 'M', '究', '什', '热', '推', '称', '购', '！', '季', '米', '光', '广', '份', '乐', '又', '获', '真', '觉', 'E', '玩', '形', '集', '备', '优', '领', '势', 'h', '楼', '准', '包', '像', '则', '难', '爱', '四', '申', 'B', 'd', '售', 'u', '快', '连', '话', '师', '告', '何', '视', '确', '深', '预', '局', '亚', '评', '票', '卡', '改', '候', '买', '况', '存', '支', '拉', '仅', '办', '注', '反', '环', '供', '角', '篮', '标', '转', '拿', '运', '参', '升', '众', 'O', '/', '创', '浪', '陈', '精', '号', '见', '助', '且', '土', '半', '议', '花', '步', '策', '南', '板', '居', '友', '越', '功', '构', '贷', '划', '模', '山', '融', '社', 'G', '决', '共', '案', 'g', '销', '走', '套', '路', '即', '言', '容', '均', '试', '积', '团', '府', '查', '条', '限', '引', '随', '择', '希', '口', '奇', '涨', '港', '盘', '象', '置', '林', '益', '效', '神', '极', '语', '复', '够', '阿', '币', '根', '州', '历', '采', '奖', '终', '适', 'N', '尼', '命', '段', '景', '险', '却', '失', '军', '权', '车', 'L', '剧', '速', '攻', '许', '足', '算', '清', '争', '响', '移', '红', '必', '幅', '额', 'y', '讯', '照', '源', '李', '验', '双', '刚', '另', '态', 'p', '致', '底', '除', '满', '击', '白', '五', '往', '喜', '财', '防', '境', '排', '百', '降', '远', '书', '习', '龙', '债', '钱', '断', '富', '曾', '测', '签', '举', '飞', '便', '介', '博', '牌', '虽', '料', '例', '边', '罗', '搭', '香', '委', '营', '器', 'R', '落', '跟', '列', '仍', '职', '尚', '阳', '监', '券', '儿', '尽', '衣', '负', '短', '找', '层', '黄', '艺', '域', '施', 'F', '离', '波', '胜', '兰', '古', '录', '黑', '素', '普', '史', '版', '摄', '官', '否', '石', '·', '站', 'w', '访', ',', '初', '细', '继', '责', '括', '卫', '露', '协', '轻', '维', '澳', '纪', '欢', '卖', '早', '绩', '穿', '孩', '按', '眼', '围', '男', '依', '宝', '控', 'b', '读', '状', '洲', '密', '差', '奥', '破', '块', '突', '…', '思', '画', '巴', '纳', '范', '映', '充', '媒', '室', 'H', '材', '字', '武', '跌', '春', '湖', '简', '担', '欧', '谈', '切', '兴', '刘', '彩', 'V', '稳', '待', '箭', '属', '声', '课', '透', '紧', '温', '绝', '园', '修', '农', '严', '减', '江', '讲', '航', '似', '独', '背', '夫', '甚', '志', '牛', '亮', '故', 'W', 'f', '汇', '义', '换', '货', '令', '饰', '招', '医', '占', '音', '群', '竞', '乎', '护', '姆', '席', '湾', '略', '央', '怎', '岁', '亲', '送', '补', '青', '索', '批', '核', '帮', '福', '伤', 'v', '昨', '念', '激', '陆', '危', '巨', '省', '宣', '般', '筑', 'k', '识', '守', '压', '错', '免', '店', '宅', '庭', '承', '雷', '云', '味', '典', '听', '笑', '登', '假', '审', '绍', '毕', '诉', '迷', '威', '谢', '练', '丽', '止', '微', '频', '净', '森', '拥', '须', '左', '印', '追', '秀', '托', '吴', '副', '疑', '千', '治', '冰', '右', '松', '晚', '皮', 'K', '佳', '夏', '呢', '魔', '缺', '编', '析', '钟', '刻', '遇', '停', '写', '付', '食', '织', '闻', '检', '礼', '惊', '莱', '余', '死', '雅', '善', '干', '愿', '爆', '某', '端', '探', '述', '吧', '执', '村', '租', '健', '阵', '律', '虑', '临', '冲', '盟', '六', '吸', '束', '射', '久', '馆', '暴', '折', '苏', '顿', '借', '宇', 'U', '病', '盛', '藏', '杰', '灵', '异', '察', '震', '退', '朋', '旅', '抢', '韩', '封', '轮', '康', '弹', '互', '伦', '败', '午', '河', '杀', '私', '镜', '扁', '潮', '幕', '旗', '党', '休', '八', '悉', '瑞', '逐', '征', '坚', '绿', '班', '迎', '吃', '母', '族', '税', '良', '丰', '训', '秘', '娱', '哈', '警', '伟', '您', '歌', '烈', '哪', '挑', '享', '肯', '凯', '顾', '杨', '丹', '雄', '键', '靠', '针', '木', '估', '届', '?', '嘉', '洛', '答', '七', '裙', '岛', '距', '刺', 'X', '趣', '养', '九', '座', '阶', '庆', '街', '释', ':', '扩', '洋', '永', '顺', '障', '盖', '勒', '遭', '铁', '笔', '启', '判', '倍', '豪', '吗', '杂', '哥', '纷', '婚', '秒', '斗', '犯', '剑', '沙', '派', '归', '操', '扮', '损', '仓', '延', '暖', '贵', '档', '载', '丝', '末', '截', '促', '竟', '油', '困', '泰', '梦', '播', '革', '络', '熟', 'Q', '顶', '酒', '础', '）', '倒', '著', '’', '麦', '章', '宁', '雪', '父', '授', '血', '裤', '静', '诺', '罚', '输', '润', '害', '船', '+', '掉', '蓝', '伊', '脑', '避', '尤', '赵', '缩', '综', '挥', '叫', '储', '镇', '寻', '怪', '鲁', '冠', '（', '努', '丁', '‘', '坛', '恩', '概', '扣', '旧', '趋', '培', '裁', '屋', 'J', '宽', '汉', '讨', '谁', '渐', '账', '涉', '岸', '胡', '毛', '锋', '迪', '幸', '偏', '秋', '菲', '码', '纯', '叶', '峰', '圣', '兵', '救', '暗', '鞋', '冬', '冷', '蒂', '侠', '董', '恐', '熊', '沃', '献', '惠', '圈', '朝', '询', '药', '智', '予', '既', '急', '吉', '曼', '赢', '姚', '替', '塔', '狂', '跳', '抗', '误', '触', '夜', '朗', '附', '坦', '慢', '励', '鱼', '含', '累', '若', '措', '怀', '贸', '雨', '草', '苦', '徐', '贴', '荣', '孙', '晓', '脚', '迅', '聚', '违', '厅', '募', '鲜', '潜', '圆', '餐', '坐', '仔', '勇', '软', '莫', '伯', '梅', '圳', '呈', '宾', '库', '凭', '掌', '俄', '焦', '漫', '灾', '曲', '佛', '怕', '谓', '劳', '贝', '廉', '符', '暂', '唯', '玉', '詹', '珍', '舒', '遗', 'x', '厚', '恒', '跑', '遍', '隆', '序', '词', '舞', '幻', '混', '粉', '灰', '田', '野', '赴', '宏', '邮', '硬', '宜', '帅', '架', '揭', '堂', '霸', '呼', '敌', '纽', '疗', '塞', '杜', '珠', '唐', '罪', '韦', '辛', '乡', '零', '迹', '固', '颜', '坏', '挂', '树', '戴', '翻', '帝', '闭', '川', '撞', 'z', '册', 'Y', '楚', '妈', '弱', '抵', '猫', '夺', '召', '埃', '腿', '筹', '握', '猛', '齐', '萨', '诚', '巧', '摆', '邀', '辉', '弃', '弟', '剩', '谋', '繁', '闲', '>', '途', '钢', '衡', '厂', '拟', '默', '弗', '恶', '沉', '锦', '署', '搞', '赞', '墙', '伴', '纹', '兽', '甲', '扬', '乔', '赶', '衫', '薪', '毫', '迈', '滑', '订', '禁', '散', '恋', '隐', '【', '】', '津', '缓', '泽', '牙', '腰', '旦', '童', '霍', '榜', '冯', '脱', '跃', '梁', '植', '肉', '仪', '醒', '郭', '晨', '掘', '涛', '\"', '详', '龄', '脸', '朱', '洁', '鼓', '姐', '侦', '仙', '洞', '桥', '骨', '枪', '晶', '洗', '亏', '句', '亡', '乱', '坡', '骑', '颗', '胸', '贡', '啊', '搜', '宗', '灯', '染', '奋', '返', '抓', '淡', '帽', '皇', '饭', '艾', '链', '纸', '摩', '拆', ']', '亦', '敏', '毒', '汽', '姜', '援', '渠', '芬', '诞', '敢', '甜', '伙', '轨', '敦', '曝', '庄', '凡', '陷', '恢', '欣', '[', '拓', '誉', '殊', '添', '咨', '壁', '拜', '荷', '县', '宫', '径', '蒙', '驻', '疯', '尝', '泡', '荐', '跨', '炒', '麻', '帕', '携', '辑', '屏', '乏', '缘', '尊', '彻', '邦', '督', '蔡', '贺', '虚', '浮', '拼', '劲', '贾', '虎', '盈', '卷', '★', '扰', '祖', '柔', '偿', '妙', '硕', 'Z', '闪', '兑', '兼', '扎', '郑', '黎', '鉴', '侧', '墅', '挺', '惯', '盗', '艳', '忙', '尾', '寸', '菜', '孤', '押', '床', '忘', '痛', '赏', '惜', '聊', '逊', '唱', '尺', '墨', '柏', '摇', '漂', '刊', '偶', '忆', '刀', '兄', '捕', '祝', '慎', '邓', '柜', '耶', '沟', '欲', '胞', '诸', '鸟', '患', '敬', '赚', '刷', '鹏', '迫', '姓', '紫', '迁', '抽', '宿', '妻', '矿', '颇', '鹿', '氛', '妇', '拒', '抱', '隔', '瓦', '塑', '羊', '泛', '慧', '窗', '绕', '籍', '孔', '址', '仿', '伍', '狼', '佩', '肩', '~', '冒', '灭', '忧', '衬', '稿', '耳', '谷', '酷', '递', '阅', '胀', '杭', '翰', '篇', '蕾', '霆', '汤', '尖', '娜', '恰', '淑', '袋', '覆', '描', '倾', '览', '迟', '魅', '蛋', '宋', '葛', '残', '烟', '振', '钻', '番', '贯', '喷', '靴', '氏', '沈', '炸', '奶', '舍', '铺', '芳', '杯', '寒', '箱', '赖', '谨', '君', '颁', '诗', '蜂', '玛', '赠', '宠', '桑', '薄', '潘', '忽', '液', '俗', '锁', '浓', '碰', '逃', '俱', '披', '懂', '寄', '燃', '坞', '沿', '袭', '奈', '允', '鹰', '曹', '骗', '横', '奢', '寓', '荡', '抛', '畅', '爵', '毁', '乘', '戈', '稍', '甘', '阻', '燕', '捷', '甄', '耗', '鬼', '涯', '墓', '壮', '赎', '虫', '爸', '旁', '阴', '惑', '耐', '宙', '御', '遥', '耀', '玲', '逆', '刑', '拖', '鸡', '沪', '仁', '偷', '岩', '池', '魂', '幽', '厦', '睡', '绪', '凌', '剪', '镑', '踪', '盾', '奏', '艰', '乌', '悲', '浙', '悬', '旋', '芝', '卢', '肖', '稀', '污', '缴', '堪', '拔', '袖', '堆', '厨', '杉', '裂', '侵', '聘', '碎', '胆', '磨', '役', '译', '洪', '烦', '妹', '怡', '捧', '狗', '忠', '挡', '尘', '唤', '肥', '卧', '嫌', '赤', '饮', '嘴', '辆', '闹', '浦', 'j', '阔', '猎', '浩', '昌', '撑', '沫', '娘', '谭', '逼', '症', '夹', '驾', '伏', '貌', '疾', '棒', '粒', '孟', '乳', '砍', '矶', '羽', '鼠', '栋', '猪', '绎', '粗', '腾', '昆', '忍', '涵', '泉', '爽', '郎', '绘', '桌', '碧', '彼', '尸', '浴', '搬', '喝', '凤', '×', '纠', '诱', '践', '惨', '坤', '踏', '昂', '挖', '悦', '泥', '谊', '肤', '奔', '碳', '谐', '烧', '瓶', '井', '莉', '俊', '哦', '妮', '犹', '巾', '庞', '宴', '睛', '幼', '&', '妆', '契', '舰', '矛', '铭', '扫', '陪', '壳', '酬', '弄', '浅', '徒', '填', '*', '兹', '摸', '夸', '拨', '炼', '抑', '愈', '晰', '琼', '伸', '梯', '茂', '烂', '堡', '驰', '戒', '捐', '孝', '－', '碑', '裕', '吨', '溢', '猜', '废', '赔', '磁', '煤', '吊', '琴', '掩', '旬', '纵', '姿', '菌', '碍', '怒', '秦', '怖', '串', '恤', '氧', '纺', '辨', '袜', '勤', '疫', '乃', '粮', '邻', '旺', '柯', '吹', '循', '琳', '勃', '爷', '瞬', '脉', '叹', '赋', '淘', '薇', '页', '陶', '漏', '蒋', '辈', '蓄', '毅', '雇', '巡', '欠', '牵', '奕', '插', '岗', '娃', '剂', '桂', '鸿', '暑', '崇', '挤', '郁', '赌', '胁', '茶', '膝', '涌', '廷', '憾', '鸣', '莎', '雕', '凉', '酸', '贤', '辞', '滚', '蝶', '槛', '啦', '渡', '锐', '玻', '拳', '赫', '翼', '茨', '厉', '攀', '•', '颖', '娇', '翔', '蛙', '蜜', '牢', '桃', '杆', '斑', '驱', '裸', '朵', '撤', '匹', '辅', '瓜', '枚', '械', '妖', '厘', '晋', '炮', '璃', '瘦', '哭', '飘', '伪', '侨', '框', '逾', '翠', '栏', '苑', '胶', '驶', '埋', '扶', '绒', '垃', '淇', '坑', '寿', '圾', '糕', '罕', '彭', '扭', '绑', '苗', '捉', '吕', '婴', '谱', '穷', '屡', '飙', '聪', '兆', '慈', '勿', '卓', '臣', '衰', '赁', '瓷', '腐', '斤', '弥', '=', '叠', '奉', '豆', '纱', '荒', '涂', '冻', '郊', '睐', '滩', '仇', '鼎', '祥', '轰', '盲', '～', '衷', '滞', '悠', '怨', '毯', '贫', '琪', '陨', '蛇', '泪', '肃', '侣', '臂', '陵', '莲', '垫', '猩', '椅', '劫', '皆', '尬', '脏', '丢', '尴', '铜', '靓', '盐', '傲', '膨', '彦', '旨', '婆', '辐', '贬', '疲', '艇', '棉', '泄', '妥', '胎', '滨', '喊', '擎', '柱', '翁', '狱', '馨', '魏', '糟', '腕', '悄', '妨', '砖', '履', '_', '哲', '谜', '虹', '吻', '炉', '纲', '竹', '劣', '闷', '纤', '泳', '咱', '漆', '凸', '夕', '俩', '脆', '饱', '藤', '贪', '亩', '猴', '辽', '漠', '塌', '丧', '孕', '疆', '轩', '玄', 'q', '斌', '擅', '僵', '汗', '挣', '峡', '袁', '衔', '弊', '凶', '痕', '巩', '邪', '勾', '寺', '朴', '迄', '侈', '呆', '抄', '豹', '斥', '掀', '彬', '躲', '裔', '罩', '辣', '盒', '啸', '莞', '丈', '钩', '缝', '肌', '炎', '狄', '糊', '帆', '橱', '倡', '媚', '笼', '磊', '凝', '慰', '渔', '割', '逢', '舟', '诈', '盼', '辩', '旭', '摊', '吓', '诊', '抬', '!', '垂', '魁', '逸', '髦', '彰', '艘', '屹', '轴', '蛮', '吁', '遵', '斜', '催', '姑', \"'\", '姻', '渤', '狮', '滋', '馈', '爬', '咖', '霞', '狠', '匪', '撼', '挫', '恨', '遮', '泼', '缀', '腻', '颠', '胖', '淀', '柳', '坠', '骂', '韵', '鲨', '湿', '耕', '啡', '敲', '撰', '翡', '穴', '扇', '疼', '蝠', '蛛', '俏', '醉', '糖', '煌', '鲸', '锡', '渴', '惧', '擦', '愤', '窄', '玫', '慕', '峻', '削', '舱', '抖', '抹', '腊', '炫', '摘', '歧', '楠', '帖', '熙', '寨', '捂', '穆', '丑', '兔', '殖', '慌', '嘛', '眠', '帐', '锻', '坎', '筐', '粹', '窃', '囊', '汶', '钉', '侯', '●', '羁', '戛', '□', '忌', '仰', '歇', '滴', '芯', '蝴', '瘾', '伐', '趁', '皱', '衍', '欺', '／', '溪', '逛', '吞', '悚', '蝙', '揽', '扑', '崩', '枝', '缠', '哨', '勘', '堵', '砸', '诠', '鼻', '珊', '瑜', '帘', '寂', '钞', '烨', '倩', '昔', '瑟', '磅', '骤', '嫁', '挪', '眉', '贿', '凰', '鲍', '淋', '俐', '鹅', '腹', '佣', '锤', '廊', '蓬', '骄', '悟', '屈', '呵', '删', '吐', '盆', '搏', '凳', '萎', '恼', '陌', '汪', '傅', '愉', '裹', '瞩', '褶', ';', '巫', '贼', '坊', '茅', '撒', '邱', '@', '雾', '筒', '咬', '齿', '矮', '斩', '鑫', '璇', '锅', '樟', '拐', '逻', '函', '苹', '婷', '喻', '旱', '仲', '瑰', '■', '惹', '慨', '窝', '悍', '讶', '悔', '膀', '晃', '颈', '讼', '凑', '亨', '葬', '睹', '叔', '崔', '蔓', '弯', '豫', '歉', '舆', '闯', '仕', '肿', '勋', '厌', '牲', '踝', '辰', '宪', '莹', '萧', '徽', '雀', '咏', '酿', '罢', '癌', '叛', '巢', '媛', '膜', '岳', '滥', '屠', '萍', '洒', '闫', '壤', '冕', '骚', '灌', '牧', '蜘', '橙', '垄', '肢', '弘', '牺', '嫩', '蹈', '龟', '肚', '炭', '汰', '傻', '芒', '阁', '螺', '桶', '壶', '胺', '绮', '黛', '#', '晕', '臀', '郡', '绵', '泊', '陕', '脂', '葡', '蔚', '粤', '秩', '抚', '秉', '婉', '雯', '睿', '羡', '奠', '驳', '蚁', '囤', '鳄', '疏', '肆', '殿', '逝', '廖', '洽', '谦', '钓', '挽', '棚', '棕', '卵', '豚', '澄', '拘', '沸', '薛', '顽', '谍', '禽', '氢', '邵', '辟', '苍', '砂', '劝', '剔', '舌', '丛', '萄', '郝', '％', '懒', '晤', '蒸', '啥', '伞', '湘', '茫', '辖', '盯', '拾', '尹', '蕴', '禅', '溃', '仗', '邹', '晒', '杠', '佐', '萌', '娥', '奎', '匆', '氰', '夷', '棋', '拯', '耍', '冈', '绸', '厕', '翟', '倪', '瞄', '碗', '筋', '祸', '庸', '暨', '岭', '竣', '诀', '巅', '栖', '⊙', '麟', '丙', '镶', '扔', '遣', '楂', '呀', '俪', '羞', '祭', '妩', '澜', '痴', '烛', '浏', '仑', '彗', '姬', '袍', '焰', '廓', '绣', '翅', '叙', '辱', '蓉', '刃', '戚', '乾', '怜', '阐', '辜', '雌', '辕', '臭', '狐', '敞', '渣', '荧', '脖', '帷', '甩', '胃', '搁', '乙', '顷', '晴', '瞻', '聂', '饼', '丘', '璐', '梨', '惩', '琦', '侃', '柴', '愁', '绚', '魄', '噪', '弈', '犀', '崛', '扯', '灿', '溯', '◆', '踢', '躺', '踩', '狭', '恭', '乖', '稻', '潭', '槽', '惕', '磋', '巷', '靡', '虐', '暮', '粘', '遏', '$', '铅', '浸', '绳', '刮', '愚', '炜', '镁', '哀', '逗', '勉', '酝', '芭', '浑', '畔', '沧', '嵌', '饲', '匠', '掏', '懈', '愧', '兜', '钗', '嫦', '咒', '屿', '骸', '叉', '渊', '绯', '霖', '躁', '漓', '匙', '昏', '弧', '蠢', '阱', '卜', '鸭', '脊', '庙', '渗', '屁', '浆', '韧', '肺', '熔', '鸦', '拦', '肠', '惟', '摔', '郅', '絮', '渝', '碌', 'é', '幢', '卸', '伽', '嘘', '擂', '龚', '腔', '婧', '烤', '硅', '纶', '矩', '诡', '昭', '娟', '霜', '翘', '燥', '冉', '摧', '碟', '篪', '汁', '犸', '玺', '甸', '窦', '铝', '晖', '蚀', '剖', '胚', '崖', '熬', '朔', '闵', '掠', '畏', '缅', '隅', '钥', '贩', '匿', '琢', '谅', '圻', '讽', '誓', '榄', '谣', '刹', '萝', '厄', '焕', '骼', '寥', '寞', '缎', '拷', '沦', '塘', '挨', '亥', '澡', '枯', '吵', '僧', '栈', '橘', '竭', '捡', '钮', '蔬', '髓', '谎', '橄', '溜', '睁', '撕', '沾', '缤', '茵', '拇', '寰', '罐', '佼', '屯', '竖', '殷', '崭', '潇', '犬', '．', '纬', '筛', '讳', '捞', '绽', '捏', '枫', '鞍', '琐', '卉', '涩', '铃', '肝', '唇', '腥', '卿', '瑶', '沛', '敛', '扛', '妍', '☆', '嘲', '弓', '坪', '窍', '觅', '奴', '凹', '佟', '缔', '蔽', '闸', '扳', '冤', '蚂', '梳', '骏', '爪', '哄', '丸', '喂', '镖', '湛', '篷', '娄', '柄', '逮', '蜥', '盎', '缪', '剥', '鹤', '蟹', '帜', '傍', '枕', '瀑', '徊', '徘', '阮', '俞', '炙', '芙', '靖', '哺', '挚', '袂', '炬', '肪', '禾', '硫', '汀', '珀', '钧', '烹', '彪', '肇', '噩', '隙', '桩', '锈', '礁', '嚣', '垒', '尿', '襟', '＋', '噬', '攒', '苛', '吼', '棍', '迭', '煞', '笨', '暇', '拢', '涡', '肘', '宰', '喇', '诛', '俭', '→', '钦', '菊', '藉', '坝', '卑', '樊', '锂', '铆', '亭', '虞', '咕', '棵', '俯', '铸', '斧', '饿', '盔', '彤', '掷', '梭', '淮', '瞒', '卦', '汹', '锣', '辙', '濒', '宵', '褐', '蜡', '耻', '橡', '咸', '乍', '乞', '缸', '膏', '垮', '鄂', '弦', '霉', '荫', '畴', '虾', '倦', '隧', '昧', '冥', '绅', '荆', '媳', '嫂', '浇', '昊', '瘤', '烫', '遂', '赘', '跻', '烷', '藻', '酱', '庚', '俨', '驼', '饥', '糙', '煮', '曙', '辄', '狙', '舶', '趟', '咋', '冀', '钾', '茜', '佑', '拱', '滤', '腺', '妃', '骁', '骷', '祈', '斐', '麒', '覃', '髅', '颓', '脾', '镂', '熠', '儒', '霄', '哑', '贞', '圃', '枢', '噱', '陋', '冶', '涅', '蒲', '耽', '喘', '杖', '窥', '隽', '姨', '哒', '|', '裴', '饶', '岚', '玮', '熏', '搅', '渲', '埔', '琛', '○', '─', '喧', '<', '℃', '踊', '拭', '肋', '耿', '厢', '邢', '镯', '捆', '株', '峥', '譬', '隶', '哇', '嫣', '葆', '屑', '璨', '绰', '孵', '沮', '帧', '揣', '歪', '奸', '瑚', '淹', '淳', '宛', '酶', '毋', '淫', '墟', '陡', '臃', '砚', '嘿', '啤', '嗅', '锯', '缚', '璀', '稽', '嬉', '茄', '佬', '栽', 'Ⅱ', '娅', '畜', '樱', '翩', '氨', '桦', '曦', '暧', '瞧', '鳌', '镀', '倘', '黯', '寡', '蚊', '葱', '惫', '幂', '烘', '惬', '椎', '飓', '抉', '妤', '溶', '昕', '媲', '沼', '轶', '闺', '煎', '饪', '滕', '耸', '＄', '聆', '氮', '罄', '菁', '庐', '蜀', '窘', '鲲', '姗', '窟', '醋', '雍', '禧', '岂', '灶', '棺', '晟', '赐', '艋', '珂', '瞎', '釉', '缆', '痒', '缉', '窑', '岐', '柬', '狸', '猿', '琅', '膊', '牟', '迥', '匀', '爹', '蜗', '婕', '嘟', '蹄', '菱', '骥', '拎', '恳', '骆', '炯', '渺', '茹', '炳', '诟', '赂', '哗', '笛', '颐', '趾', '歼', '∶', '泣', '陀', '蝉', '芦', '涿', '畸', '￥', '堕', '釜', '壹', '宕', '硝', '玖', '蓓', '瑕', '贱', '豁', '娶', '禄', '缭', '绷', '赝', '穗', '栗', '泌', '伺', '膑', '坍', '稚', '醛', '叮', '滔', '坟', '胳', '躯', '凿', '邬', '瞪', '驭', '葵', '棱', '瀚', '囚', '烁', '溅', '旷', '榻', '侍', '矢', '辗', '磷', '轿', '挠', '炽', '憋', '洼', '杏', '崎', '捍', '诫', '阎', '芽', '劈', '嘱', '吾', '谴', '沐', '梵', '鸥', '姥', '蜴', '珑', '檀', '棘', '鞭', '蜕', '逍', '堤', '惺', '桐', '戮', '沁', '孢', '癫', '跪', '侏', '嘻', '魑', '喉', '瘫', '醇', '肾', '喀', '栩', '骇', '瓣', '忑', '萃', '忐', '烯', '粪', '徙', '嗓', '邸', '榴', '凄', '诅', '蕉', '椒', '蹲', '妞', '芸', '嗯', '妒', '羚', '韬', '剃', '朽', '蝇', '秃', '恍', '亟', '鄢', '�', '憧', '褒', '牡', '妄', '汐', '阀', '扼', '遐', '蟒', '呕', '逅', '毙', '邂', '簇', '铮', '叭', '萱', '霾', '吝', '禺', '酋', '菇', '嗜', '襄', '蹊', '颤', '楷', '慑', '珏', '驯', '祷', '缇', '寇', '颂', '拽', '嫉', '憬', '氯', '飚', '褪', '氦', '灼', '眩', '悼', '螂', '俑', '咯', '铲', '砌', '疵', '兢', '跷', '枉', '袱', '晏', '皓', '澎', '晔', '僚', '・', '匈', '梓', '汛', '徕', '娴', '锥', '倚', '匮', '弩', '饽', '庇', '^', '厮', '荼', '匾', '沓', '恬', '瑾', '甫', '祺', '鳞', '孚', '眷', '孰', '坯', '孜', '迦', '莓', '拙', '矫', '僻', '啃', '蘑', '驴', '饺', '咽', '跋', '吟', '舵', '焚', '煽', '竿', '殴', '陇', '疤', '榆', '绊', '躬', '痪', '璧', '坷', '歹', '觑', '槟', '呐', '茸', '昱', '谬', '铨', '苞', '磕', '簿', '琥', '殆', '筝', '泻', '鞠', '缕', '窕', '窈', '檐', '兀', '掐', '趴', '瑙', '凛', '睦', '盏', '熄', '敷', '栅', '摒', '瞰', '潢', '喔', '佘', '蹿', '擒', '抒', '圭', '谙', '碘', '砥', '仆', '赃', '阪', '羹', '黏', '舅', '蹦', '鳍', '俘', '屉', '穹', '婪', '笈', '汲', '叨', '愣', '镍', '蛟', '挟', '撇', '咎', '寐', '°', '粥', '惮', '堰', '巍', '漩', '钙', '丐', '骋', '隋', '憨', '煜', '峨', '鹊', '毗', '慷', '酪', '哎', '烙', '\\\\', '棠', '娆', '慵', '挎', '莘', '煲', '惋', '咳', '翎', '尧', '寝', '斋', '昵', '蚕', '苯', '捣', '澈', '稠', '眨', '稣', '犷', '砷', '邃', '绞', '雏', '诧', '裘', '椭', '疟', '砭', '辫', '嘎', '呛', '涤', '篑', '榈', '岑', '戟', '颅', '铐', '咧', '蚓', '筷', '螃', '苟', '衅', '箍', '膺', '惶', '泵', '曳', '闽', '呱', '剽', '靶', '戳', '砝', '粟', '沽', '掺', '侥', '臻', '懵', '峙', '钵', '蝎', '狡', '弛', '昼', '琉', '碱', '哮', '奚', '伎', '蛰', '揪', '皙', '迸', '薯', '亢', '悖', '戎', '垦', '矜', '鸽', '鹦', '榕', '酣', '窒', '倔', '胯', '伶', '诵', '踵', '钊', '姊', '酌', '抨', '哟', '撩', '莅', 'μ', '拧', '®', '溉', '柠', '炅', '妓', '懿', '茧', '峭', '雁', '渎', '◎', '窖', '貂', '腩', '酥', '蒜', '舜', '蚯', '耘', '肴', '麓', '曜', '嚷', '韶', '娲', '缄', '嵩', '氓', '猬', '鹉', '娓', '敖', '诙', '筠', '刁', '匣', '矣', '邋', '柿', '※', '鱿', '紊', '淆', '皂', '竺', '鹜', '攘', '苓', '馅', '斓', '厥', '淌', '窜', '癖', '兮', '遢', '夭', '驹', '咪', '茎', '梗', '粽', '喋', '瑛', '屎', '鹭', '幔', '咀', '怠', '铧', '匡', '沌', '萤', '噢', '眈', '猖', '阙', '滇', '拌', '睫', '潍', '乒', '铂', '裱', '葫', '忡', '趸', '檬', '砺', '狩', '〈', '撬', '悸', '〉', '粱', '崽', '锏', '痊', '嚼', '瓢', '禹', '湮', '＝', '冗', '夯', '贰', '汝', '侮', '乓', '礴', '笃', '淤', '潞', '涎', '恪', '淼', '呦', '吆', '侄', '泓', '荔', '遴', '霓', '沂', '怯', '酵', '尉', '墩', '咫', '椰', '藩', '勺', '唾', '簧', '薰', '桓', '胧', '柒', '饕', '蠕', '钛', '蜒', '钰', '熹', '槌', '泾', '蜿', '埠', '疮', '谧', '挝', '笋', '瞿', '枣', '恺', '拂', '丫', '羌', '醍', '睾', '朦', '颚', '赈', '岌', '餮', '锷', '荟', '姝', '锄', '扉', '匕', '嘀', '芜', '铎', '萦', '暄', '秽', '栾', '啬', '菩', '糅', '鬃', '芋', '眸', '踞', '湃', '獗', '瀛', '裳', '奂', '纭', '罹', '焉', '阜', '氟', '茱', '瞅', '蛊', '昙', '篡', '蛤', '濮', '嵘', 'Ⅲ', '撮', '篱', '痞', '铿', '璞', '岔', '逞', '祀', '苇', '扒', '钝', '峪', '腱', '莽', '蚤', '溺', '瞠', '珐', '疚', '矗', '茬', '飒', '俺', '炖', '晾', '颊', '蒿', '橹', '彷', '咄', '泗', '掰', '笙', '砾', '卒', '沥', '宸', '馒', '嗽', '羲', '寅', '铠', '焱', '］', '螳', '铀', '漪', '遛', '荃', '浒', '姣', 'α', '诽', '聋', '猥', '丞', '［', '骰', '榨', '忱', '虱', '皿', '抠', '隼', '呗', '叱', '啼', '囱', '眯', '哉', '哼', '唉', '嚎', '憩', '嗒', '汾', '捅', '猾', '刨', '蟾', '鲶', '谤', '猝', '酯', '锌', '枭', '籽', '於', '犁', '曰', '垩', '唏', '诃', 'Ø', '①', '稼', '蜻', '唠', '™', '膛', '斟', '胤', 'è', '蟑', '轼', '痹', '叼', '猕', '蜓', '烬', '觎', '拣', '拗', '浚', '揍', '汕', '揉', '缮', '', '鄙', '剿', '泯', '祉', '璋', '虏', '婿', '莠', '捺', '蹬', '晦', '榷', '钒', '缨', '呜', '啪', '搀', '鹃', '狈', '觊', '瘟', '涓', '绌', '辍', '枷', '咤', '赣', '谛', '蔷', '腼', '亵', '浣', '〕', '霹', '饵', '瞥', '椋', '雳', '桔', '眶', '腆', '娩', '愫', '腮', '翌', '绢', '桨', '喙', '鞘', '旎', '〔', '惦', '凋', '澧', '憎', '惚', '烽', '跤', '昀', '殉', '怂', '邝', '涟', '芹', '魇', '羔', '贻', '祁', '赦', '殃', '蕊', '轲', '珉', '麾', '蟆', '驿', '咆', '蜍', '脐', '弋', '螈', '袒', '霁', '惰', '馥', '佯', '踹', '¾', '眺', '蓟', '祠', '渥', '掂', '臼', '蹭', '漾', '禀', '瘪', '喽', '涧', '懊', '鲟', '贮', '渍', '昴', '裆', '舔', 'ü', '摁', '琨', '谑', '咐', '钳', '缜', '昶', '摹', '帼', '焊', '毡', '‰', '锢', '邯', '②', '蛾', '髻', '秤', '肮', '蔑', '睽', '鬣', '茁', '涮', '町', '锚', '珞', '袄', '诩', '糜', '颌', '掮', '苔', '臆', '梧', '岖', '冽', '菠', '蔼', '黔', '诣', '镰', '膳', '殇', '漱', '躏', '垢', '坨', '腋', '鏖', '蹂', '泸', '铛', '札', '诘', '嗦', '玟', '偕', '妾', '嗡', '钚', '籁', '鹫', '搂', '澍', '隘', '卯', '迢', '馍', '遁', '袤', '炊', '溥', '嘶', '铤', '迂', '闰', '甭', '濡', '犒', '孽', '垣', '胫', '唬', 'Ａ', '胄', '嘈', '垡', '懦', '唧', '翱', '喃', '`', '跚', '晗', '棣', '荚', '幌', '⋯', '蹒', '殡', '犊', '蕙', '柚', '蛆', '茉', '煊', '冼', '遨', '涝', '胰', '哽', '馋', '睬', '馁', '鸠', '痫', '纣', '靳', '芥', '祛', '咂', '搓', '倭', '啄', '◇', '砰', '苷', '攫', '磺', '哆', '嗖', '浊', '榭', '恙', '涸', '霏', '扈', '獒', '搪', '酰', '鸳', '惭', '拄', '讧', '骅', '蜚', '鲤', '岱', '毓', '钠', '‧', '瞳', '潦', '藕', 'à', '芮', '脍', '濠', '疹', '偌', '啧', '镳', '嗣', '簸', '菅', '』', '狳', '阂', '『', '庶', '犰', '讹', '徨', '篆', '珥', '後', '鸯', '搡', '妊', '嫔', '梢', 'Ｇ', '掳', '瘩', '讥', '疙', '丕', '呃', '茗', '攸', '锲', '叩', '楔', '惘', '哩', '郦', '莺', '獭', '蹶', '衩', '↑', '夙', '虔', '嗔', '羸', '惴', '掣', '抡', '熨', '孪', '衙', '罡', '拈', '渭', 'Ｈ', '祟', '怅', '唆', '蔻', '恕', '狞', '愕', '啷', '燎', '瘠', '窿', '谩', '浜', '黝', '咔', '潺', 'Ⅶ', '涕', '纂', '箴', '遑', '靛', '藐', '煦', '踌', '邑', '▲', '咚', '魈', '婀', '湄', '筱', '鼬', '躇', '碾', '衢', '舛', '琶', '鸵', '泞', '轧', '拴', '撂', '攥', '忻', '√', '瘸', '佰', '铢', '翊', '裨', '腑', '漳', '胱', '馗', '讷', '徜', '灸', '跆', '祚', '樵', '珈', '―', '麂', '弑', '杞', '幄', '廿', '鳗', '鲑', '徉', '偎', '锵', '椁', '蛹', '冢', '娣', '侬', '笆', '③', '叽', '皑', '忏', '葩', '闳', '吱', '舷', '悴', '槐', '歆', '憔', '亘', 'Ⅰ', '蝌', '峦', '恣', '阑', '牒', '汞', '豉', '舸', '怵', '蝓', '蟠', '嗷', '帚', '盹', '褂', '蹴', '酗', '蚪', '噎', '灏', '蘸', '＆', '洱', '伫', '£', '甬', '〗', '↓', '掬', '〖', '淅', '贲', '懋', 'Ｃ', '蜷', '橇', '咙', '郸', '雹', '赓', '幺', '霰', '颦', '孱', '忒', '糗', '岷', '∩', '摞', '谚', '谲', '酮', '啮', '坂', '帛', '铱', '吒', '偃', '悯', '恻', '恿', 'β', 'Ｔ', '搔', '铯', '痰', '楹', '旖', '娠', '荥', '烩', '磐', '俚', '豌', '擞', '纫', '崴', '辘', '潸', '塾', '喳', '啻', '鎏', '狰', '壕', '颢', '嗤', '骛', '悻', '蛞', '嫡', '蚝', '焙', '糯', '缰', '鬓', '狒', '栎', '稔', '迩', '傀', '痘', '蔗', 'Ⅳ', '卞', '鹕', '蹩', '鹈', '孀', '瘀', '谕', '樾', '戾', '痼', '纾', '钿', '喱', '诬', '唔', '蛀', '钨', '滟', '楞', '拮', '栓', '粼', '骊', '壑', '濑', '仨', '￡', '嗨', '寮', '儡', '傣', '≠', '倜', '蕨', '吡', '霎', '疡', '泱', '羿', '俸', '瘙', '饬', '诿', '仝', '踉', '嗲', '柑', '纰', '腌', '嚏', '泠', '＞', '≤', '漕', '瓮', '聿', '腴', '喵', '卤', '箫', '樽', '褛', '惆', '渚', '羯', '摺', '酉', '挛', '氘', '傥', '笠', '幡', '诋', '鳖', '谒', '蚌', '炔', '屐', '奄', '谟', '羟', '飕', '鼹', '唰', '摈', '跄', '荀', '樨', '锆', '拚', '揄', '苜', '杵', '蓿', '盂', '麝', '镌', '揶', '阋', 'Ｏ', '鳃', '囡', '箔', '庾', '殓', '鸸', '蹋', '讪', '蝰', '脲', '阖', '稷', 'の', '褥', '胭', '铍', '桎', '疱', '潼', '绛', 'ä', '鲼', '诨', '梏', '逵', '铬', '痉', '鹋', '恃', '蔫', '钴', '铩', '皋', '§', 'Ｎ', '粕', '绫', '吭', '麽', '呻', '＊', '瞌', 'ン', '镣', '烊', '啕', '脓', '牍', '陲', '谘', '耷', '赅', '撷', '罔', '燮', '涣', '陂', '钜', '湍', '闾', '銮', '珙', '酩', '嚓', '邙', '怦', '铰', '忿', '＂', '祯', '榉', '刽', '伉', '蟀', '氚', '滦', '垠', '擘', '陛', '珩', '跺', '謦', '庖', '坻', '麋', '捶', '嗑', '褚', '焯', '湫', '僮', '桀', '荭', '蟋', '唁', '锹', '瘁', '咦', '熵', '榔', '胥', '腭', '缥', '桅', '嗝', '÷', '孺', '绉', '绥', '顼', '胛', 'É', '瞑', '砒', '颞', 'Ｂ', '脯', '噜', '荤', '吏', 'Ｅ', '囿', '骜', '捎', '沅', '瓯', '痍', '颛', '亳', '淄', '篝', '囔', '甥', '黠', '皖', '剁', '鞑', '秧', '娑', '谏', '吩', '赳', '撅', '鲈', '岫', '颧', '蹉', '岿', '谆', 'Ｄ', '跎', '漉', '佻', '\\xad', '仃', '²', '筵', '罂', '宦', '缈', '飨', '沣', '楣', '＜', '氩', '吮', '龈', '汩', '杳', '唳', '诏', '淞', '噔', '酚', '鼾', 'ó', '蛎', '锭', '鳕', 'イ', '碉', '蕲', '搐', '鄞', '臧', '皎', '诲', '蹑', '吠', '膘', '骡', '髋', '赡', '鹬', '艮', 'Ｖ', '楦', '＇', '嫖', '婶', '轫', '蛭', '€', '盥', '疣', '琵', '掴', '倬', '咿', '碴', '癣', '泔', '榫', '汨', 'ル', '蝾', '岬', '敝', '芊', '龛', '氙', '耦', '踱', '褓', '笺', '镉', '戊', '斡', '叁', '抿', '荞', '蚩', '袅', '婵', '徇', 'Ｆ', '仟', '皈', '逯', 'Ｓ', '彝', '讴', '醺', '柩', '炕', '淖', '揆', '綦', '畿', '嘞', '俾', '鲇', '狨', '芾', '蓦', '锶', '噤', '琏', '｜', '锰', '镪', '琮', '菏', '鲵', '掖', '璎', '荻', '韭', 'Ｐ', '鲔', '葳', 'ア', '嘹', '觞', '洙', '秣', '庵', '烃', '徵', '肽', '殒', '兖', '璜', '」', '龅', '啶', 'ç', '裥', '跛', '缂', '獠', '「', '袢', '莆', '豺', '勐', '妲', '磬', '浔', '睑', '鲱', '箩', '碜', '驮', '犄', '堑', '嬗', '蝮', '滢', '捱', '哌', '鹳', '圩', '叻', '锟', '栉', 'γ', '靼', '樘', '涔', '棂', '沱', '鸢', '馏', '苒', '颉', '桢', '隍', '牦', '瓒', '擢', '郇', '暌', '蜇', '劾', '≥', '捋', '扪', '邛', '蝗', '镭', '嵋', '桉', '捻', 'ö', 'ラ', '褴', '娼', '仄', '濂', '\\uf06c', '淬', '枳', '枸', '峋', '阉', '疽', '襁', '秸', '螨', '骞', '芷', '榛', '颀', '莨', '秆', '藓', '蕃', '悱', '旮', '窠', '溧', '嶙', 'ス', '}', '崂', '湎', '藜', '鸩', '钌', '椿', 'Ⅵ', '邡', '锗', '郴', '桁', '洵', '醴', 'Ｍ', '赭', '墒', '坳', '醚', 'ジ', '簪', '踮', '儆', '隈', 'Ｘ', '岘', '肛', '氪', '谶', '痤', '耆', '骧', '囹', '岙', '螭', '螯', '缱', '澹', '谔', '醪', '厝', '圄', '旯', '啖', '蜃', '鸾', '④', '梆', 'í', '硒', '绺', 'ê', '睇', '芑', '砧', '钤', '戬', '玷', '晌', '跗', '\\u200b', 'á', '嶂', '钺', '泷', '瓴', '痨', '耙', '±', '郗', '睢', '怆', '弼', 'Ⅷ', '挞', '纨', '┊', '孑', '俎', '戍', '″', '噼', '氤', '涪', '绗', '撵', '倌', '荏', '遽', '蜈', '＃', '箕', '竽', '钯', '韪', '貔', '凼', '箐', '垭', '枥', '貅']\n",
      "x_train= [[1609  659   56 ...    9  311    3]\n",
      " [   2  101   16 ... 1168    3   24]\n",
      " [ 465  855  521 ...  116  136   85]\n",
      " ...\n",
      " [   0    0    0 ...  701   35    3]\n",
      " [ 360   73    2 ...  695  450    3]\n",
      " [   0    0    0 ... 1537  637   85]]\n"
     ]
    }
   ],
   "source": [
    "# 获取文本的类别及其对应id的字典\n",
    "categories, cat_to_id = read_category()\n",
    "print(categories)\n",
    "# 获取训练文本中所有出现过的字及其所对应的id\n",
    "words, word_to_id = read_vocab('cnews.vocab.txt')\n",
    "print(words)\n",
    "# 获取训练数据每个字的id和对应标签的one-hot形式\n",
    "x_train, y_train = process_file(train_file, word_to_id, cat_to_id, 600)\n",
    "print('x_train=', x_train)\n",
    "x_val, y_val = process_file(val_file, word_to_id, cat_to_id, 600)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "id": "HBTWOvnXiDdv"
   },
   "outputs": [],
   "source": [
    "loss_list = []\n",
    "loss_epoch_list = []\n",
    "accuracy_epoch_list = []\n",
    "accuracy_mean_list = []   # 每个epoch计算一次accuracy平均\n",
    "loss_epochMean_list = []   # 每个epoch计算一次loss平均\n",
    "def train():\n",
    "    model = TextRNN().cuda()\n",
    "    # 定义损失函数\n",
    "    Loss = nn.MultiLabelSoftMarginLoss() # 多类别（multi-class）多分类（multi-classification）的 Hinge 损失\n",
    "    optimizer = optim.Adam(model.parameters(),lr=0.001)\n",
    "    \n",
    "    best_val_acc = 0\n",
    "    \n",
    "    for epoch in range(1000):\n",
    "        print('epoch=',epoch)\n",
    "        # 分批训练\n",
    "        temp_loss = 0\n",
    "        accuracy_mean = 0\n",
    "        for step, (x_batch, y_batch) in enumerate(train_loader):\n",
    "            \n",
    "            x = x_batch.cuda()  #[128, 600]\n",
    "            y = y_batch.cuda() # [128, 10]\n",
    "            # 前向传播\n",
    "            out = model(x) # [128, 10]\n",
    "            loss = Loss(out, y)\n",
    "            loss_list.append(loss) # 保存loss，方便画图\n",
    "            temp_loss += loss\n",
    "            print('loss=', loss)\n",
    "            # 反向传播\n",
    "            optimizer.zero_grad()\n",
    "            loss.backward()\n",
    "            optimizer.step()\n",
    "            accuracy = np.mean((torch.argmax(out,1) == torch.argmax(y,1)).cpu().numpy())\n",
    "            accuracy_mean += accuracy\n",
    "            print('accuracy=', accuracy)\n",
    "        # print(step,temp_loss)\n",
    "        accuracy_epoch_list.append(accuracy)\n",
    "        accuracy_mean_list.append(accuracy_mean/(step+1))\n",
    "        loss_epoch_list.append(loss) # 保存loss，方便画图\n",
    "        loss_epochMean_list.append(temp_loss/(step+1))\n",
    "\n",
    "        if (epoch+1)%5==0:\n",
    "            # 模型验证\n",
    "            for step, (x_batch, y_batch) in enumerate(val_loader):\n",
    "                x = x_batch.cuda()\n",
    "                y = y_batch.cuda()\n",
    "                # 前向传播\n",
    "                out = model(x)\n",
    "                accuracy = np.mean((torch.argmax(out,1) == torch.argmax(y,1)).cpu().numpy())\n",
    "                if accuracy > best_val_acc:\n",
    "                    torch.save(model,'model.pkl')\n",
    "                    best_val_acc = accuracy\n",
    "                    print('model.pkl saved')\n",
    "                    print('accuracy=',accuracy)\n",
    "                    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 141
    },
    "id": "_SsuhLAgiDdz",
    "outputId": "9bd5bee4-9880-44c4-e446-532743d96bd7"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1., 0., 0., ..., 0., 0., 0.],\n",
       "       [1., 0., 0., ..., 0., 0., 0.],\n",
       "       [1., 0., 0., ..., 0., 0., 0.],\n",
       "       ...,\n",
       "       [0., 1., 0., ..., 0., 0., 0.],\n",
       "       [0., 1., 0., ..., 0., 0., 0.],\n",
       "       [0., 1., 0., ..., 0., 0., 0.]], dtype=float32)"
      ]
     },
     "execution_count": 8,
     "metadata": {
      "tags": []
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "id": "1m4-bnGZiDd3"
   },
   "outputs": [],
   "source": [
    "import torch.utils.data as Data\n",
    "import numpy as np\n",
    "# 设置GPU\n",
    "cuda = torch.device('cuda')\n",
    "x_train, y_train = torch.LongTensor(x_train), torch.Tensor(y_train).to(dtype=torch.int64)\n",
    "x_val, y_val = torch.LongTensor(x_val), torch.Tensor(y_val).to(dtype=torch.int64)\n",
    "\n",
    "# .TensorDataset检查x_train和y_train第一维是否相同，相同则继续\n",
    "# (1000,600)(1000,10)，assert all(tensors[0].size(0) == tensor.size(0) for tensor in tensors)\n",
    "train_dataset = Data.TensorDataset(x_train, y_train)  \n",
    "val_dataset = Data.TensorDataset(x_val, y_val)\n",
    "#\n",
    "train_loader = Data.DataLoader(dataset = train_dataset, batch_size=128, shuffle=True)\n",
    "val_loader = Data.DataLoader(dataset = val_dataset, batch_size=128)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 1000
    },
    "collapsed": true,
    "id": "o3QGXMrulxkN",
    "jupyter": {
     "outputs_hidden": true
    },
    "outputId": "cd86a500-b01d-44d4-e775-e96efa6c6338"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epoch= 0\n",
      "loss= tensor(0.7344, device='cuda:0', grad_fn=<MeanBackward0>)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/container.py:117: UserWarning: Implicit dimension choice for softmax has been deprecated. Change the call to include dim=X as an argument.\n",
      "  input = module(input)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[1;30;43m流式输出内容被截断，只能显示最后 5000 行内容。\u001b[0m\n",
      "accuracy= 0.4807692307692308\n",
      "epoch= 706\n",
      "loss= tensor(0.7043, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7048, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7120, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7070, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40384615384615385\n",
      "epoch= 707\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7070, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7089, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7145, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3359375\n",
      "loss= tensor(0.7023, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7053, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 708\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7061, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 709\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7043, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7048, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7039, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7053, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7185, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3269230769230769\n",
      "epoch= 710\n",
      "loss= tensor(0.7054, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7039, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7138, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7048, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7112, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7020, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5096153846153846\n",
      "epoch= 711\n",
      "loss= tensor(0.7088, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7056, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7099, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7042, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4807692307692308\n",
      "epoch= 712\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7064, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7105, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7106, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7044, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 713\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7027, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7106, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7120, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7062, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7054, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46153846153846156\n",
      "epoch= 714\n",
      "loss= tensor(0.7081, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7119, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7006, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7034, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7117, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "epoch= 715\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7090, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.6987, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7099, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7126, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.41346153846153844\n",
      "epoch= 716\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7011, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.515625\n",
      "loss= tensor(0.7123, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7070, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7140, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7027, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40384615384615385\n",
      "epoch= 717\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7152, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3359375\n",
      "loss= tensor(0.7075, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7032, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7061, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7043, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7027, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5096153846153846\n",
      "epoch= 718\n",
      "loss= tensor(0.7019, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7143, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.34375\n",
      "loss= tensor(0.7061, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7143, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7025, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7029, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7061, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 719\n",
      "loss= tensor(0.7070, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7075, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7106, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3515625\n",
      "loss= tensor(0.7026, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.515625\n",
      "loss= tensor(0.7103, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 720\n",
      "loss= tensor(0.7105, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.6989, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.53125\n",
      "loss= tensor(0.7081, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7133, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7036, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7123, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3557692307692308\n",
      "epoch= 721\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7050, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7019, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7138, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7110, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 722\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7127, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7015, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7130, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7053, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7043, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.49038461538461536\n",
      "epoch= 723\n",
      "loss= tensor(0.7095, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7037, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7106, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7081, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 724\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7043, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7032, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7114, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7105, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7092, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 725\n",
      "loss= tensor(0.7063, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.6985, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5234375\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7161, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40384615384615385\n",
      "epoch= 726\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7032, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7078, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4230769230769231\n",
      "epoch= 727\n",
      "loss= tensor(0.7070, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7121, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7037, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7027, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7042, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4807692307692308\n",
      "epoch= 728\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7119, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7034, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7081, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7062, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7042, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4230769230769231\n",
      "epoch= 729\n",
      "loss= tensor(0.7054, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7119, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7033, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7061, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7089, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3942307692307692\n",
      "epoch= 730\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7089, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7111, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7100, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7031, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7019, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "epoch= 731\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7095, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7010, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4807692307692308\n",
      "epoch= 732\n",
      "loss= tensor(0.7075, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7153, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3359375\n",
      "loss= tensor(0.7054, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7006, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.53125\n",
      "loss= tensor(0.7107, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7039, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7091, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7048, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "epoch= 733\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7033, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7130, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3515625\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4230769230769231\n",
      "epoch= 734\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7088, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7114, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 735\n",
      "loss= tensor(0.7040, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7113, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7090, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7054, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46153846153846156\n",
      "epoch= 736\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7029, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7108, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7088, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7090, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7115, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "epoch= 737\n",
      "loss= tensor(0.7044, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7139, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7092, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7007, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.49038461538461536\n",
      "epoch= 738\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7099, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7089, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7063, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7026, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 739\n",
      "loss= tensor(0.7109, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7037, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7063, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7111, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46153846153846156\n",
      "epoch= 740\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7116, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7051, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7038, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7105, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46153846153846156\n",
      "epoch= 741\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7081, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7089, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 742\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7091, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7044, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7123, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3942307692307692\n",
      "epoch= 743\n",
      "loss= tensor(0.7137, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7020, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.515625\n",
      "loss= tensor(0.7054, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7115, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 744\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7040, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7154, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3515625\n",
      "loss= tensor(0.7035, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7039, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.49038461538461536\n",
      "epoch= 745\n",
      "loss= tensor(0.7095, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7139, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7001, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.53125\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 746\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7088, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7020, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7147, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3557692307692308\n",
      "epoch= 747\n",
      "loss= tensor(0.7051, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7051, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7103, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7026, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.53125\n",
      "loss= tensor(0.7107, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40384615384615385\n",
      "epoch= 748\n",
      "loss= tensor(0.7040, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7040, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7106, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7015, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7124, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7112, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "epoch= 749\n",
      "loss= tensor(0.7006, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.53125\n",
      "loss= tensor(0.7102, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7034, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7113, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7107, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7050, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 750\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7115, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7056, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7017, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7064, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7131, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.38461538461538464\n",
      "epoch= 751\n",
      "loss= tensor(0.7063, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7131, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.6991, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7152, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3203125\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7018, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "epoch= 752\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7090, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7128, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7040, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7032, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7099, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.38461538461538464\n",
      "epoch= 753\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7119, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.6991, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5546875\n",
      "loss= tensor(0.7092, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7118, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7050, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7038, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5096153846153846\n",
      "epoch= 754\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7043, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7092, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7165, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7048, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7030, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5096153846153846\n",
      "epoch= 755\n",
      "loss= tensor(0.7088, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7013, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7042, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7075, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7081, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7099, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7112, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 756\n",
      "loss= tensor(0.7103, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7091, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7044, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7042, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7002, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5192307692307693\n",
      "epoch= 757\n",
      "loss= tensor(0.7114, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7129, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3515625\n",
      "loss= tensor(0.7036, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7081, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.6995, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5703125\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3942307692307692\n",
      "epoch= 758\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7070, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7121, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7033, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7105, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7006, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7099, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 759\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7043, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7023, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7040, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7111, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.41346153846153844\n",
      "epoch= 760\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7078, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7099, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7044, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 761\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7062, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7118, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7015, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 762\n",
      "loss= tensor(0.7050, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7019, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7063, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7081, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7143, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.34375\n",
      "loss= tensor(0.7107, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "epoch= 763\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7105, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7033, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7040, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 764\n",
      "loss= tensor(0.7034, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.6992, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5390625\n",
      "loss= tensor(0.7138, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3515625\n",
      "loss= tensor(0.7013, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7103, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7106, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7139, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.36538461538461536\n",
      "epoch= 765\n",
      "loss= tensor(0.7130, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7070, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7054, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 766\n",
      "loss= tensor(0.7125, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7034, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7021, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.53125\n",
      "loss= tensor(0.7100, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 767\n",
      "loss= tensor(0.7064, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7090, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7107, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7102, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.6977, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5865384615384616\n",
      "epoch= 768\n",
      "loss= tensor(0.7143, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7048, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7032, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7034, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40384615384615385\n",
      "epoch= 769\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7056, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7048, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7110, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 770\n",
      "loss= tensor(0.7099, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7056, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7002, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.515625\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7021, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7158, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.33653846153846156\n",
      "epoch= 771\n",
      "loss= tensor(0.7115, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7075, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7023, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7075, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7124, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7053, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 772\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7029, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7153, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.328125\n",
      "loss= tensor(0.7107, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7064, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7095, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 773\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7053, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7105, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7011, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.515625\n",
      "loss= tensor(0.7120, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7053, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7063, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 774\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7119, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7007, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.515625\n",
      "loss= tensor(0.7036, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7063, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4230769230769231\n",
      "epoch= 775\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.6997, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.53125\n",
      "loss= tensor(0.7053, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7134, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7054, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 776\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7039, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7036, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.515625\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7110, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3942307692307692\n",
      "epoch= 777\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7100, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7115, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7009, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7090, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7018, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5096153846153846\n",
      "epoch= 778\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7063, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7120, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7102, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40384615384615385\n",
      "epoch= 779\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7024, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7114, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7051, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 780\n",
      "loss= tensor(0.7108, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7061, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7108, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7026, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7139, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7024, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.515625\n",
      "loss= tensor(0.7031, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.49038461538461536\n",
      "epoch= 781\n",
      "loss= tensor(0.7039, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7134, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3515625\n",
      "loss= tensor(0.7103, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7034, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7035, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 782\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7025, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7006, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5096153846153846\n",
      "epoch= 783\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7108, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.515625\n",
      "loss= tensor(0.7097, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7112, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7035, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 784\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7033, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7042, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7097, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7129, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4230769230769231\n",
      "epoch= 785\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7003, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7112, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7091, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7105, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7009, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.515625\n",
      "loss= tensor(0.7122, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4230769230769231\n",
      "epoch= 786\n",
      "loss= tensor(0.7103, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7062, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7034, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7078, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7032, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7091, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4230769230769231\n",
      "epoch= 787\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7112, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7051, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46153846153846156\n",
      "epoch= 788\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7054, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7061, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7015, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7120, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7115, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.41346153846153844\n",
      "epoch= 789\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7135, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7053, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7112, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.38461538461538464\n",
      "epoch= 790\n",
      "loss= tensor(0.7062, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7056, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7106, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7113, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7026, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7091, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7035, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 791\n",
      "loss= tensor(0.7009, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7112, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7095, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7050, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7100, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7044, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7097, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4230769230769231\n",
      "epoch= 792\n",
      "loss= tensor(0.7032, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7023, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7091, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7123, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7035, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "epoch= 793\n",
      "loss= tensor(0.7027, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7103, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7070, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "epoch= 794\n",
      "loss= tensor(0.7130, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7037, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5234375\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7124, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7002, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7095, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.41346153846153844\n",
      "epoch= 795\n",
      "loss= tensor(0.7122, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7054, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7062, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7036, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7125, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 796\n",
      "loss= tensor(0.7106, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7117, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7053, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7054, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7070, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7062, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 797\n",
      "loss= tensor(0.7099, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7062, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7056, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7095, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7044, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 798\n",
      "loss= tensor(0.7088, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7078, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7118, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7092, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7013, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7054, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7021, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4807692307692308\n",
      "epoch= 799\n",
      "loss= tensor(0.7061, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7124, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7033, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7078, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 800\n",
      "loss= tensor(0.7005, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7131, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7125, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 801\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7105, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7091, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7002, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5234375\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 802\n",
      "loss= tensor(0.7106, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7016, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5390625\n",
      "loss= tensor(0.7050, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7029, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7119, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7130, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4230769230769231\n",
      "epoch= 803\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7092, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7029, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7070, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7095, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7126, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "epoch= 804\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7122, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7089, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7120, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.34375\n",
      "loss= tensor(0.7090, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.6979, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.546875\n",
      "loss= tensor(0.7026, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4807692307692308\n",
      "epoch= 805\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7126, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7038, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7029, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7024, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7132, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.34375\n",
      "loss= tensor(0.7054, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4807692307692308\n",
      "epoch= 806\n",
      "loss= tensor(0.7089, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7061, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7062, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7031, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7040, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7151, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3359375\n",
      "loss= tensor(0.7056, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 807\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7027, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7121, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7038, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7034, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7133, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3942307692307692\n",
      "epoch= 808\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7089, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7088, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 809\n",
      "loss= tensor(0.7036, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7070, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7158, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3359375\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7039, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7053, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4230769230769231\n",
      "epoch= 810\n",
      "loss= tensor(0.7056, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7099, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7107, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7102, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40384615384615385\n",
      "epoch= 811\n",
      "loss= tensor(0.7040, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7035, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7111, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7051, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4230769230769231\n",
      "epoch= 812\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7028, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7097, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 813\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7015, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5234375\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7042, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7108, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.38461538461538464\n",
      "epoch= 814\n",
      "loss= tensor(0.7027, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7034, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7100, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7103, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7018, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7133, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.41346153846153844\n",
      "epoch= 815\n",
      "loss= tensor(0.7123, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7078, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7063, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4807692307692308\n",
      "epoch= 816\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7018, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7147, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3203125\n",
      "loss= tensor(0.7103, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7062, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4230769230769231\n",
      "epoch= 817\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7116, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7063, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7024, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5096153846153846\n",
      "epoch= 818\n",
      "loss= tensor(0.7106, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7019, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.515625\n",
      "loss= tensor(0.7110, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7026, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7120, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7097, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "epoch= 819\n",
      "loss= tensor(0.7123, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7108, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7032, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7027, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5234375\n",
      "loss= tensor(0.7027, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7144, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7075, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7031, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46153846153846156\n",
      "epoch= 820\n",
      "loss= tensor(0.7063, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7019, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7031, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7092, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7097, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7102, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7115, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4230769230769231\n",
      "epoch= 821\n",
      "loss= tensor(0.7102, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7038, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7088, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7105, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 822\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7099, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7127, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7018, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7042, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.49038461538461536\n",
      "epoch= 823\n",
      "loss= tensor(0.7095, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7019, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7028, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7110, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7157, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.33653846153846156\n",
      "epoch= 824\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7089, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7118, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7037, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7028, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 825\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7121, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3359375\n",
      "loss= tensor(0.7030, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7051, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7107, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3515625\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7039, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4807692307692308\n",
      "epoch= 826\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7110, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7061, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 827\n",
      "loss= tensor(0.7023, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7147, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3359375\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7095, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.36538461538461536\n",
      "epoch= 828\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7038, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7121, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7091, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7051, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7053, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 829\n",
      "loss= tensor(0.7070, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7095, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7036, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7029, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7092, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 830\n",
      "loss= tensor(0.7008, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7091, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7035, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7089, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7132, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "epoch= 831\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7112, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7097, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7044, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7089, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 832\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7039, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7081, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7061, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 833\n",
      "loss= tensor(0.7108, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7089, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7142, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7042, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7014, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.53125\n",
      "loss= tensor(0.7108, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7001, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5234375\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.36538461538461536\n",
      "epoch= 834\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7051, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7152, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3203125\n",
      "loss= tensor(0.7050, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7070, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7111, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 835\n",
      "loss= tensor(0.7050, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7114, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.6976, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.53125\n",
      "loss= tensor(0.7143, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.328125\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7114, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 836\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7088, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7064, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7061, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7100, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7118, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7025, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 837\n",
      "loss= tensor(0.7146, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7054, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7017, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7092, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7099, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4230769230769231\n",
      "epoch= 838\n",
      "loss= tensor(0.7040, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7099, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7081, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7027, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7108, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7095, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 839\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7061, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7048, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7134, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 840\n",
      "loss= tensor(0.7026, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7126, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7078, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7034, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7040, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7105, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46153846153846156\n",
      "epoch= 841\n",
      "loss= tensor(0.7100, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7042, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.6992, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5390625\n",
      "loss= tensor(0.7114, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3942307692307692\n",
      "epoch= 842\n",
      "loss= tensor(0.7078, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7036, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7099, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4230769230769231\n",
      "epoch= 843\n",
      "loss= tensor(0.7039, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7103, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7128, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7027, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46153846153846156\n",
      "epoch= 844\n",
      "loss= tensor(0.7099, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.6992, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.53125\n",
      "loss= tensor(0.7070, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7090, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7088, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 845\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7121, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7120, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7039, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7033, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 846\n",
      "loss= tensor(0.7114, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7111, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7075, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7124, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7000, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5390625\n",
      "loss= tensor(0.7044, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7023, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 847\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7100, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7075, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7025, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7135, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3942307692307692\n",
      "epoch= 848\n",
      "loss= tensor(0.7012, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7040, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7112, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7099, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7056, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7111, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40384615384615385\n",
      "epoch= 849\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7123, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7106, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.6974, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5234375\n",
      "loss= tensor(0.7105, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7050, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 850\n",
      "loss= tensor(0.7088, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7012, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.515625\n",
      "loss= tensor(0.7070, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7117, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7078, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7116, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7037, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4807692307692308\n",
      "epoch= 851\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7051, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7064, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7105, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 852\n",
      "loss= tensor(0.7023, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7111, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7107, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7102, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7032, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7035, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 853\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7040, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7062, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7091, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7102, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7121, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40384615384615385\n",
      "epoch= 854\n",
      "loss= tensor(0.7103, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7044, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7043, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7014, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7134, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40384615384615385\n",
      "epoch= 855\n",
      "loss= tensor(0.7044, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7114, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7053, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7113, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 856\n",
      "loss= tensor(0.7088, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7081, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7097, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7048, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.36538461538461536\n",
      "epoch= 857\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7123, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7099, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7042, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7110, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7040, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40384615384615385\n",
      "epoch= 858\n",
      "loss= tensor(0.7100, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7021, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7109, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7088, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4230769230769231\n",
      "epoch= 859\n",
      "loss= tensor(0.7075, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7033, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7028, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7075, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7110, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.41346153846153844\n",
      "epoch= 860\n",
      "loss= tensor(0.7022, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7064, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7062, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7108, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7095, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7092, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40384615384615385\n",
      "epoch= 861\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7029, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7042, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7146, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3515625\n",
      "loss= tensor(0.7126, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7070, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46153846153846156\n",
      "epoch= 862\n",
      "loss= tensor(0.7081, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7026, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 863\n",
      "loss= tensor(0.7090, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7125, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.6997, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5234375\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7016, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7132, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3515625\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 864\n",
      "loss= tensor(0.6975, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.53125\n",
      "loss= tensor(0.7075, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7061, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7109, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7090, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 865\n",
      "loss= tensor(0.7135, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7146, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7109, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7002, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5546875\n",
      "loss= tensor(0.6975, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.53125\n",
      "loss= tensor(0.7031, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7099, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.41346153846153844\n",
      "epoch= 866\n",
      "loss= tensor(0.7056, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7126, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7127, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7028, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7090, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7021, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 867\n",
      "loss= tensor(0.7121, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.6985, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7122, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7100, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7097, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7038, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46153846153846156\n",
      "epoch= 868\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7081, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7123, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 869\n",
      "loss= tensor(0.7092, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7015, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7113, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7017, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7118, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7051, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46153846153846156\n",
      "epoch= 870\n",
      "loss= tensor(0.7064, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7122, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.34375\n",
      "loss= tensor(0.7091, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7023, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7026, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7089, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46153846153846156\n",
      "epoch= 871\n",
      "loss= tensor(0.7089, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7108, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7023, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7033, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 872\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7088, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7043, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7111, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.41346153846153844\n",
      "epoch= 873\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7090, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7126, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7117, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7051, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7061, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7007, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5234375\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5096153846153846\n",
      "epoch= 874\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7035, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7051, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7116, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7030, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.515625\n",
      "loss= tensor(0.7105, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "epoch= 875\n",
      "loss= tensor(0.7056, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7039, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7032, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7151, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3203125\n",
      "loss= tensor(0.7044, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7131, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7040, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "epoch= 876\n",
      "loss= tensor(0.7050, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7042, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7042, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7030, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7109, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7091, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7126, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3557692307692308\n",
      "epoch= 877\n",
      "loss= tensor(0.7081, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7037, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7112, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3942307692307692\n",
      "epoch= 878\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7032, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7063, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7100, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7088, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 879\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7109, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7048, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7092, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7026, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46153846153846156\n",
      "epoch= 880\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7022, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7111, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7090, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.41346153846153844\n",
      "epoch= 881\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7129, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7004, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.53125\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7126, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7039, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7070, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.38461538461538464\n",
      "epoch= 882\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7153, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3515625\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7030, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7111, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7009, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5288461538461539\n",
      "epoch= 883\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7097, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7032, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7056, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7028, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4807692307692308\n",
      "epoch= 884\n",
      "loss= tensor(0.7007, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.515625\n",
      "loss= tensor(0.7110, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7026, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.515625\n",
      "loss= tensor(0.7097, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 885\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7120, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7092, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7037, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7021, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 886\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7114, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7028, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7108, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7095, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7048, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7026, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "epoch= 887\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7130, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7013, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5390625\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.49038461538461536\n",
      "epoch= 888\n",
      "loss= tensor(0.7103, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7015, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.515625\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7095, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7039, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7118, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 889\n",
      "loss= tensor(0.7110, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7061, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7042, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46153846153846156\n",
      "epoch= 890\n",
      "loss= tensor(0.7063, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7025, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7131, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7081, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7034, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 891\n",
      "loss= tensor(0.7107, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7121, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7027, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7130, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3359375\n",
      "loss= tensor(0.6982, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5192307692307693\n",
      "epoch= 892\n",
      "loss= tensor(0.7123, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7100, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7078, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.6996, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.53125\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 893\n",
      "loss= tensor(0.7061, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7018, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7174, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3203125\n",
      "loss= tensor(0.7051, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7030, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7113, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40384615384615385\n",
      "epoch= 894\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7056, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7014, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7088, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7092, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "epoch= 895\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7106, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7050, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7075, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46153846153846156\n",
      "epoch= 896\n",
      "loss= tensor(0.7031, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7097, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7005, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5546875\n",
      "loss= tensor(0.7130, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7126, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7034, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4807692307692308\n",
      "epoch= 897\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7124, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7039, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7038, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 898\n",
      "loss= tensor(0.7089, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7075, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4230769230769231\n",
      "epoch= 899\n",
      "loss= tensor(0.7143, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7043, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.6991, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5234375\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7119, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7030, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7062, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46153846153846156\n",
      "epoch= 900\n",
      "loss= tensor(0.7026, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7115, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7091, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7122, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7012, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 901\n",
      "loss= tensor(0.7152, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7122, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.6997, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5390625\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7033, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5288461538461539\n",
      "epoch= 902\n",
      "loss= tensor(0.7033, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7126, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.34375\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7054, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7053, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 903\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7043, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7138, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7091, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7037, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5288461538461539\n",
      "epoch= 904\n",
      "loss= tensor(0.7122, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7028, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.515625\n",
      "loss= tensor(0.7130, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7051, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7063, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46153846153846156\n",
      "epoch= 905\n",
      "loss= tensor(0.7128, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7089, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.6994, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5390625\n",
      "loss= tensor(0.7116, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7037, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7048, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 906\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7078, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7122, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7078, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.6986, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5192307692307693\n",
      "epoch= 907\n",
      "loss= tensor(0.7021, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7081, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7136, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7048, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7051, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 908\n",
      "loss= tensor(0.7125, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7021, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7130, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7028, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 909\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7090, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7037, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7132, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7051, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 910\n",
      "loss= tensor(0.7048, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7091, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.6951, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.578125\n",
      "loss= tensor(0.7141, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.34375\n",
      "loss= tensor(0.7121, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7113, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 911\n",
      "loss= tensor(0.7075, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7042, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7106, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.38461538461538464\n",
      "epoch= 912\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7118, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7125, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.6998, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.546875\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 913\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7124, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7051, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7039, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7028, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 914\n",
      "loss= tensor(0.7099, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7048, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7056, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7054, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7136, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.328125\n",
      "loss= tensor(0.7106, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4230769230769231\n",
      "epoch= 915\n",
      "loss= tensor(0.7017, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7095, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.6995, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5625\n",
      "loss= tensor(0.7125, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7090, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 916\n",
      "loss= tensor(0.7032, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7091, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7043, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7128, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7114, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7044, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 917\n",
      "loss= tensor(0.7116, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7137, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3359375\n",
      "loss= tensor(0.7106, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7070, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7032, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7011, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.515625\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 918\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7102, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7095, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7039, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 919\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7030, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7078, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7124, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7112, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7024, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7103, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4807692307692308\n",
      "epoch= 920\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7044, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7026, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7120, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7078, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 921\n",
      "loss= tensor(0.7062, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7115, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7040, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7040, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7054, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7108, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.41346153846153844\n",
      "epoch= 922\n",
      "loss= tensor(0.7137, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3515625\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.6965, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5546875\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7152, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.49038461538461536\n",
      "epoch= 923\n",
      "loss= tensor(0.7037, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7064, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7103, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7107, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7119, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7116, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7021, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4807692307692308\n",
      "epoch= 924\n",
      "loss= tensor(0.7075, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7081, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7050, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7136, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 925\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7095, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7105, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7026, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.53125\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7064, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 926\n",
      "loss= tensor(0.7048, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7095, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7091, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4230769230769231\n",
      "epoch= 927\n",
      "loss= tensor(0.7075, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7146, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7075, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7031, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7001, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.53125\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7116, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3942307692307692\n",
      "epoch= 928\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7091, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7022, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7070, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 929\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7061, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.6989, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5390625\n",
      "loss= tensor(0.6999, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7114, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7102, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7158, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.38461538461538464\n",
      "epoch= 930\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7137, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7064, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7014, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40384615384615385\n",
      "epoch= 931\n",
      "loss= tensor(0.7102, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7039, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.6990, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.53125\n",
      "loss= tensor(0.7112, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7110, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7078, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7050, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7110, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.41346153846153844\n",
      "epoch= 932\n",
      "loss= tensor(0.7120, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7048, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7064, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7097, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7132, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7017, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 933\n",
      "loss= tensor(0.7118, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.6991, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5390625\n",
      "loss= tensor(0.7095, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7040, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7108, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7099, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.41346153846153844\n",
      "epoch= 934\n",
      "loss= tensor(0.7022, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7026, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7107, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7134, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.36538461538461536\n",
      "epoch= 935\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7011, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5234375\n",
      "loss= tensor(0.7064, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7126, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7126, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 936\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7121, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7063, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4230769230769231\n",
      "epoch= 937\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7024, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7061, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7043, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7126, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7130, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.36538461538461536\n",
      "epoch= 938\n",
      "loss= tensor(0.7113, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7019, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7035, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7039, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7110, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 939\n",
      "loss= tensor(0.7064, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7078, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7113, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 940\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7106, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7050, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.515625\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7105, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7030, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.49038461538461536\n",
      "epoch= 941\n",
      "loss= tensor(0.7039, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7050, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7131, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7032, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7036, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7139, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.38461538461538464\n",
      "epoch= 942\n",
      "loss= tensor(0.7106, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7027, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7088, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7103, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7030, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "epoch= 943\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7107, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7037, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7038, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7018, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7110, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7109, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3557692307692308\n",
      "epoch= 944\n",
      "loss= tensor(0.7013, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7126, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7108, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7026, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7111, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.41346153846153844\n",
      "epoch= 945\n",
      "loss= tensor(0.7103, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7106, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7053, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7163, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7043, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7031, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7016, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5096153846153846\n",
      "epoch= 946\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7056, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7110, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7105, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7017, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 947\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7142, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7024, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7044, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 948\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7052, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7037, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7122, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46153846153846156\n",
      "epoch= 949\n",
      "loss= tensor(0.7099, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7043, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7091, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.41346153846153844\n",
      "epoch= 950\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7061, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7050, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7128, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7022, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.49038461538461536\n",
      "epoch= 951\n",
      "loss= tensor(0.7053, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7016, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5234375\n",
      "loss= tensor(0.7091, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7124, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7099, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7040, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 952\n",
      "loss= tensor(0.7109, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7100, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7075, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7081, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7029, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7097, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 953\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7053, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7095, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7110, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7039, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7102, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 954\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7112, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7032, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7078, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n",
      "epoch= 955\n",
      "loss= tensor(0.7070, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7063, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7102, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.41346153846153844\n",
      "epoch= 956\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7102, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7051, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7125, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7031, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4807692307692308\n",
      "epoch= 957\n",
      "loss= tensor(0.7090, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7017, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7064, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7111, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4230769230769231\n",
      "epoch= 958\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7015, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.53125\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7127, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.6996, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5546875\n",
      "loss= tensor(0.7053, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7105, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.38461538461538464\n",
      "epoch= 959\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.515625\n",
      "loss= tensor(0.7124, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7054, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7012, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5390625\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7075, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 960\n",
      "loss= tensor(0.7107, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7120, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.6998, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.546875\n",
      "loss= tensor(0.7061, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7064, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46153846153846156\n",
      "epoch= 961\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7029, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7122, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7106, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "epoch= 962\n",
      "loss= tensor(0.7053, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7037, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7056, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40384615384615385\n",
      "epoch= 963\n",
      "loss= tensor(0.7020, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.53125\n",
      "loss= tensor(0.7131, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7119, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7112, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7081, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7064, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7051, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.6985, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5480769230769231\n",
      "epoch= 964\n",
      "loss= tensor(0.7055, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7056, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7053, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7088, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7081, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40384615384615385\n",
      "epoch= 965\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7111, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7062, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7037, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7062, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7110, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.38461538461538464\n",
      "epoch= 966\n",
      "loss= tensor(0.7011, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5234375\n",
      "loss= tensor(0.7089, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7088, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7139, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7100, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7037, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46153846153846156\n",
      "epoch= 967\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7099, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7054, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7048, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.49038461538461536\n",
      "epoch= 968\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7111, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7076, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7031, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7090, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 969\n",
      "loss= tensor(0.7044, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7014, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7122, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7075, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7108, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7092, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7029, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "epoch= 970\n",
      "loss= tensor(0.7043, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7038, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7106, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7063, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7061, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7112, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7112, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.36538461538461536\n",
      "epoch= 971\n",
      "loss= tensor(0.7083, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7149, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3359375\n",
      "loss= tensor(0.7031, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7061, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7037, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7110, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40384615384615385\n",
      "epoch= 972\n",
      "loss= tensor(0.7097, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7019, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7019, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7165, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3557692307692308\n",
      "epoch= 973\n",
      "loss= tensor(0.7114, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7121, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7024, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7050, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7131, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3515625\n",
      "loss= tensor(0.7009, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5288461538461539\n",
      "epoch= 974\n",
      "loss= tensor(0.6973, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5625\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7042, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7159, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.328125\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7152, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7078, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 975\n",
      "loss= tensor(0.7072, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7100, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7125, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7029, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 976\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7003, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7115, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7039, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7063, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7125, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.33653846153846156\n",
      "epoch= 977\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7123, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7121, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.6990, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.578125\n",
      "loss= tensor(0.7149, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.6978, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5384615384615384\n",
      "epoch= 978\n",
      "loss= tensor(0.7035, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7124, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7161, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3125\n",
      "loss= tensor(0.7003, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5288461538461539\n",
      "epoch= 979\n",
      "loss= tensor(0.7039, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7037, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7089, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7044, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7118, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4423076923076923\n",
      "epoch= 980\n",
      "loss= tensor(0.7132, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7121, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7056, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7044, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7108, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7051, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7022, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7002, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.49038461538461536\n",
      "epoch= 981\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7102, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.41346153846153844\n",
      "epoch= 982\n",
      "loss= tensor(0.7030, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7018, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7118, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7116, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7081, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3942307692307692\n",
      "epoch= 983\n",
      "loss= tensor(0.7073, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7006, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.546875\n",
      "loss= tensor(0.7030, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7075, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7103, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.41346153846153844\n",
      "epoch= 984\n",
      "loss= tensor(0.7043, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7081, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7112, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7042, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7053, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7119, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.38461538461538464\n",
      "epoch= 985\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7108, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7108, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7068, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.49038461538461536\n",
      "epoch= 986\n",
      "loss= tensor(0.7051, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7041, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7077, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7054, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7097, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7075, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7084, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3942307692307692\n",
      "epoch= 987\n",
      "loss= tensor(0.7044, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7057, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7044, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7100, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40384615384615385\n",
      "epoch= 988\n",
      "loss= tensor(0.7097, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7004, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5234375\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7096, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7117, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 989\n",
      "loss= tensor(0.7090, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7064, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7097, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7054, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7031, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46153846153846156\n",
      "epoch= 990\n",
      "loss= tensor(0.7070, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7101, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7104, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7018, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7094, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7012, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 991\n",
      "loss= tensor(0.7078, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7098, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7063, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7050, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7102, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "loss= tensor(0.7085, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 992\n",
      "loss= tensor(0.7087, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7095, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7022, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7067, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7095, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7106, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "epoch= 993\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7070, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7060, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7082, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7006, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7097, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4326923076923077\n",
      "epoch= 994\n",
      "loss= tensor(0.7047, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7074, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7100, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7059, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7065, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7114, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4230769230769231\n",
      "epoch= 995\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7110, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7093, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.390625\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7092, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.40625\n",
      "loss= tensor(0.7009, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.515625\n",
      "loss= tensor(0.7033, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7135, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.375\n",
      "epoch= 996\n",
      "loss= tensor(0.7053, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4765625\n",
      "loss= tensor(0.7046, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5\n",
      "loss= tensor(0.7044, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7134, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.359375\n",
      "loss= tensor(0.7110, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.34375\n",
      "loss= tensor(0.7042, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.484375\n",
      "loss= tensor(0.7092, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46153846153846156\n",
      "epoch= 997\n",
      "loss= tensor(0.7111, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.7143, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.7069, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4296875\n",
      "loss= tensor(0.7040, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7137, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3671875\n",
      "loss= tensor(0.6979, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.515625\n",
      "loss= tensor(0.7049, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.5078125\n",
      "loss= tensor(0.7071, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.41346153846153844\n",
      "epoch= 998\n",
      "loss= tensor(0.7125, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7080, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4453125\n",
      "loss= tensor(0.7066, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4609375\n",
      "loss= tensor(0.7058, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.453125\n",
      "loss= tensor(0.7081, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4140625\n",
      "loss= tensor(0.6984, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.515625\n",
      "loss= tensor(0.7121, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3828125\n",
      "loss= tensor(0.7045, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4519230769230769\n",
      "epoch= 999\n",
      "loss= tensor(0.7005, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4921875\n",
      "loss= tensor(0.7053, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.46875\n",
      "loss= tensor(0.7086, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.421875\n",
      "loss= tensor(0.7148, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.34375\n",
      "loss= tensor(0.7089, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7097, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.3984375\n",
      "loss= tensor(0.7079, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.4375\n",
      "loss= tensor(0.7051, device='cuda:0', grad_fn=<MeanBackward0>)\n",
      "accuracy= 0.47115384615384615\n"
     ]
    }
   ],
   "source": [
    "train()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 281
    },
    "id": "v8WXxSSTiDd7",
    "outputId": "2b1462b6-eb9b-4dac-eae1-53955518290c"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light",
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# loader每个批的每8个loss(1000//128)\n",
    "import matplotlib.pyplot as plt\n",
    "plt.plot(range(1,len(loss_list)+1),loss_list)\n",
    "plt.title('loss')\n",
    "plt.ylabel('loss')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 281
    },
    "id": "BkDbydoFk1a4",
    "outputId": "1a27ad2b-58d7-4709-c536-7d85e11937f4"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light",
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 每个loader批的最后一个loss\n",
    "plt.plot(range(1,len(loss_epoch_list)+1),loss_epoch_list)\n",
    "plt.title('loss_epoch')\n",
    "plt.ylabel('loss')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 281
    },
    "id": "ctNaG30anqNm",
    "outputId": "e691b808-7d93-416f-c690-7557146bf4c0"
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEICAYAAABI7RO5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deXxU1f3/8dcnO/sadgyLCAIKaAT3jaKgVvxW26J+3Wpr+21trW0VbKtVf9pqbWvdaqut2mqVKrXVohVUXFARCYLsS0CWsEjYAgSyf35/zJ1hspEJZJiQvJ+Pxzyce+4y52Yw75x7zj3X3B0REZFYJSW6AiIicmRRcIiISL0oOEREpF4UHCIiUi8KDhERqRcFh4iI1IuCQ5o1M1tjZl9KdD3iyczeNbNvJroe0nQoOEREpF4UHCIiUi8KDhHAzNLN7PdmtjF4/d7M0oN1nc1sqpntNLPtZjbTzJKCdRPNbIOZ7Taz5WY2uo7PSTKzSWa2ysy2mdmLZtYxWNfHzNzMbgjqsMnMfhJLHYP1481svpntCo4/Nuqjs8zsw6Ce082sc4P+AKVZUXCIhPwMOBkYDgwDRgI/D9b9GMgDMoGuwE8BN7OBwI3ASe7eBjgfWFPH53wfuAQ4C+gB7AAeq7LNOcAA4DxgYlQfTK11NLORwN+AW4D2wJlV6nIFcB3QBUgDfoLIQVJwiIRcCdzt7lvcPR+4C7gqWFcKdAey3L3U3Wd6aJK3ciAdGGxmqe6+xt1X1fE53wF+5u557l4M3AlcZmYpUdvc5e6F7r4QeBq4PIY6Xg885e5vunuFu29w92VRx3za3Ve4+z7gRULhI3JQFBwiIT2AtVHLa4MygAeAXGC6ma02s0kA7p4L/JDQL/8tZjbZzHpwYFnAv4LLXjuBpYQCqGvUNutrqceB6tgbOFBobY56vxdoXUc9RWql4BAJ2Ujol3rYUUEZ7r7b3X/s7v2Ai4Efhfsy3P15dz892NeB++v4nPXAOHdvH/XKcPcNUdv0rqkeB6pjcNz+MZ6ryCFRcIiEvAD83Mwyg47jO4DnAMzsIjM72swMKCDUQqgws4Fmdm7QQV0E7AMq6vicPwL3mllWcOxMMxtfZZvbzaylmQ0h1C/xj7rqCPwFuM7MRgcd8D3NbNDB/zhEaqfgEAm5B8gBFgALgU+DMgh1VL8F7AFmAX9w93cI9W/cB2wldCmoC3BbHZ/zEPAqocteu4GPgVFVtnmP0KWxt4HfuPv0uuro7p8QCpkHCYXbe1RunYg0GNODnEQaBzPrA3wOpLp7WWJrI1I7tThERKReFBwiDczM/mtme2p4/TTRdRNpCLpUJSIi9aIWh4iI1EtK3Zsc+Tp37ux9+vRJdDVERI4oc+fO3erumVXLm0Vw9OnTh5ycnERXQ0TkiGJma2sq16UqERGpl7gGh5mNDaaazg3P71Nl/YPBNNDzzWxFMHcPZpZlZp8G5YvN7DtR+7wbHDO8X5d4noOIiFQWt0tVZpZMaLroMYSmpJ5jZq+6+5LwNu5+c9T23wdGBIubgFPcvdjMWgOLgn3D8/Jc6e669iQikgDxbHGMBHLdfbW7lwCTgapz8kS7nNBcPLh7STDlNISmddAlNRGRRiKev5B7Unl66LygrJpgwre+wIyost5mtiA4xv1RrQ2Ap4PLVLcHE8/VdMwbzCzHzHLy8/MP9VxERCTQWP6SnwBMcffycIG7r3f344GjgWvMLPy8givd/TjgjOB1VbWjhfZ/wt2z3T07M7PaaDIRETlI8QyODVR+rkCvoKwmEwguU1UVtDQWEQoJws8tcPfdwPOELomJiMhhEs/gmAMMMLO+ZpZGKBxerbpR8MyADoSmqw6X9TKzFsH7DsDpwHIzSwmeQ4CZpQIXEQqVuJix7AtenLO+7g1FRJqRuI2qcvcyM7sRmAYkE3oe8mIzuxvIcfdwiEwAJnvlSbOOBX5rZg4YoWcSLDSzVsC0IDSSCT0j4ck41Z/nPl7H+yvyOfOYTLq1y4jHx4iIHHGaxSSH2dnZfjB3judu2c2Xfvc+d108hGtO7dPwFRMRacTMbK67Z1ctbyyd443S0V3a0LdzK2au1KgsEZEwBUcderZvwbbCkkRXQ0Sk0VBw1KFtixQK9pUmuhoiIo2GgqMO7VqkskvBISISoeCoQ9sWqRTsK6U5DCIQEYmFgqMObdJTKC13SsorEl0VEZFGQcFRh4zUZACKyxQcIiKg4KhTekroR1RcquAQEQEFR53SIy2O8jq2FBFpHhQcdQi3OIrU4hARARQcdUpPUYtDRCSagqMOGalBH4c6x0VEAAVHncItjqJStThEREDBUad0tThERCpRcNQhI9zHoc5xERFAwVGn/S0OXaoSEQEFR510A6CISGUKjjpk6AZAEZFKFBx10A2AIiKVKTjqoBsARUQqU3DUITXZSDINxxURCVNw1MHMSE9J1g2AIiIBBUcM0lOT1OIQEQkoOGKQoRaHiEiEgiMGKclGabmeOS4iAgqOmKQmJ1FWoeAQEYE4B4eZjTWz5WaWa2aTalj/oJnND14rzGxnUJ5lZp8G5YvN7DtR+5xoZguDYz5sZhbPcwBISTLKytXHISICkBKvA5tZMvAYMAbIA+aY2avuviS8jbvfHLX994ERweIm4BR3Lzaz1sCiYN+NwOPAt4DZwOvAWOC/8ToPgJTkJF2qEhEJxLPFMRLIdffV7l4CTAbGH2D7y4EXANy9xN2Lg/L0cD3NrDvQ1t0/dncH/gZcEq8TCEtNNsoq1OIQEYH4BkdPYH3Ucl5QVo2ZZQF9gRlRZb3NbEFwjPuD1kbP4DixHPMGM8sxs5z8/PxDOpHQpSq1OEREoPF0jk8Aprh7ZMyru6939+OBo4FrzKxrfQ7o7k+4e7a7Z2dmZh5S5UKXqtTiEBGB+AbHBqB31HKvoKwmEwguU1UVtDQWAWcE+/eK8ZgNJnSpSi0OERGIb3DMAQaYWV8zSyMUDq9W3cjMBgEdgFlRZb3MrEXwvgNwOrDc3TcBu8zs5GA01dXAK3E8BwCSkzQcV0QkLG6jqty9zMxuBKYBycBT7r7YzO4Gctw9HCITgMlBZ3fYscBvzcwBA37j7guDdd8FngFaEBpNFdcRVQCpGo4rIhIRt+AAcPfXCQ2ZjS67o8rynTXs9yZwfC3HzAGGNlwt65aSrM5xEZGwxtI53qilJCdRquG4IiKAgiMmqRqOKyISoeCIQUpykvo4REQCCo4YpCYbpRpVJSICKDhikqxRVSIiEQqOGKQkJVGuFoeICKDgiElykik4REQCCo4YJCcZ5a7gEBEBBUdM1OIQEdlPwRGDZFNwiIiEKThikJxkVDi4LleJiCg4YpGcFHqsuVodIiIKjphEgkMtDhERBUcs1OIQEdlPwRGDFAWHiEiEgiMGSabgEBEJU3DEICVZwSEiEqbgiIFaHCIi+yk4YpCiUVUiIhEKjhgkBcGhpwCKiCg4YhJucVSoxSEiouCIRfg+jjL1cYiIKDhiEQ6OCgWHiIiCIxbJphaHiEiYgiMGSbpzXEQkQsERA005IiKyn4IjBkm6j0NEJCKuwWFmY81suZnlmtmkGtY/aGbzg9cKM9sZlA83s1lmttjMFpjZ16P2ecbMPo/ab3g8zwEgNSn0Y9J9HCIikBKvA5tZMvAYMAbIA+aY2avuviS8jbvfHLX994ERweJe4Gp3X2lmPYC5ZjbN3XcG629x9ynxqntV6amh4CgpqzhcHyki0mjFs8UxEsh199XuXgJMBsYfYPvLgRcA3H2Fu68M3m8EtgCZcazrAaWnhH5MxWXliaqCiEijEc/g6Amsj1rOC8qqMbMsoC8wo4Z1I4E0YFVU8b3BJawHzSy9lmPeYGY5ZpaTn59/sOcAQHpKMgDFanGIiDSazvEJwBR3r/QnvZl1B54FrnP38G/t24BBwElAR2BiTQd09yfcPdvdszMzD62xohaHiMh+8QyODUDvqOVeQVlNJhBcpgozs7bAa8DP3P3jcLm7b/KQYuBpQpfE4ircx1FcqhaHiEg8g2MOMMDM+ppZGqFweLXqRmY2COgAzIoqSwP+Bfytaid40ArBzAy4BFgUtzMI6FKViMh+cRtV5e5lZnYjMA1IBp5y98VmdjeQ4+7hEJkATHavdJPE14AzgU5mdm1Qdq27zwf+bmaZgAHzge/E6xzCdKlKRGS/uAUHgLu/DrxepeyOKst31rDfc8BztRzz3AasYkwiwaFLVSIijaZzvFFLSU4iOcl0qUpEBAVHzNJTknSpSkQEBUfMQsGhFoeIiIIjRukpyerjEBFBwRGz9FRdqhIRAQVHzHSpSkQkRMERozQFh4gIoOCIWXpKsi5ViYig4IhZekqSOsdFRFBwxEx9HCIiIQqOGOlSlYhIiIIjRqHhuGpxiIgoOGKkPg4RkRAFR4x0qUpEJETBESN1jouIhCg4YqQ+DhGREAVHjNJTkimvcMrKFR4i0rwpOGIUfgpgiYJDRJo5BUeMwsFx2eOzElwTEZHEUnDEKD01GYAlm3YluCYiIokVU3CY2U1m1tZC/mJmn5rZefGuXGPSKj0l0VUQEWkUYm1xfMPddwHnAR2Aq4D74larRui8wV0Z2LUNAHPX7khwbUREEifW4LDgvxcAz7r74qiyZiEjNZnrTusDwKWPf4S7J7ZCIiIJEmtwzDWz6YSCY5qZtQGa3fCi/l1aR97vKS5LYE1ERBIn1uC4HpgEnOTue4FU4Lq41aqRGtqjXeT9ii/2JLAmIiKJE2twnAIsd/edZva/wM+BgvhVq3FqkZbME1edCIQuVy3VCCsRaYZiDY7Hgb1mNgz4MbAK+FvcatWIdWqdFnk/7qGZvLt8SwJrIyJy+MUaHGUe6g0eDzzq7o8BberayczGmtlyM8s1s0k1rH/QzOYHrxVmtjMoH25ms8xssZktMLOvR+3T18xmB8f8h5mlVT1uPA3t2a7S8uPvrjqcHy8iknCxBsduM7uN0DDc18wsiVA/R63MLBl4DBgHDAYuN7PB0du4+83uPtzdhwOPAC8Hq/YCV7v7EGAs8Hszax+sux940N2PBnYQ6n85bNJTkpl3+xi+fWY/AHp3bHk4P15EJOFiDY6vA8WE7ufYDPQCHqhjn5FArruvdvcSYDKhFkttLgdeAHD3Fe6+Mni/EdgCZJqZAecCU4J9/gpcEuM5NJgOrdKYNG4QAK11Y6CINDMxBUcQFn8H2pnZRUCRu9fVx9ETWB+1nBeUVWNmWUBfYEYN60YCaYT6VToBO909PBb2QMe8wcxyzCwnPz+/jqrWn5nRs30LdhWVNvixRUQas1inHPka8AnwVeBrwGwzu6wB6zEBmOLulR6xZ2bdgWeB69y9XveNuPsT7p7t7tmZmZkNWNX9CkvKePnTDWzZXRSX44uINEaxXqr6GaF7OK5x96sJXYa6vY59NgC9o5Z7BWU1mUBwmSrMzNoCrwE/c/ePg+JtQHszC18fOtAx465v51YAjLz37URVQUTksIs1OJLcPXrc6bYY9p0DDAhGQaURCodXq25kZoMIzX81K6osDfgX8Dd3D/dnEIzsegcIt3auAV6J8RwaXLiDXESkOYk1ON4ws2lmdq2ZXUuoJfD6gXYI+iFuBKYBS4EX3X2xmd1tZhdHbToBmOyVJ3/6GnAmcG3UcN3hwbqJwI/MLJdQn8dfYjyHBnf2wC4AtM1QB7mINB8W62R9ZnYpcFqwONPd/xW3WjWw7Oxsz8nJicuxf/HKIl6et4GFd54fl+OLiCSKmc119+yq5TH/qezu/wT+2aC1agK6tM1gd1EZRaXlZAQPexIRacoOGBxmthuoqUlihLoc2salVkeQzDbpAGzZVcxRnXQzoIg0fQcMDnevc1qR5q57uwwAVm7ZreAQkWZBzxw/RCf16UiXNun8ddbaRFdFROSwUHAcoozUZE7t34nPt+r5HCLSPCg4GkBGajLFpc3ugYgi0kwpOBpAekoSxWUKDhFpHhQcDSAjNZnisvK6NxQRaQIUHA3AzCgqreDJ91cnuioiInGn4GgAe0tCs7zf+/rSBNdERCT+FBwNQB3jItKcKDgagPo3RKQ5UXA0gCK1OESkGVFwNIDzhnSNvK+oiG22YRGRI5WCowF85YReTBw7CIBRv9LTAEWkaVNwNJChPUMTBefvLqZcrQ4RacIUHA2kf2bryPt9peosF5GmS8HRQDq2Sou8D9/XISLSFCk4Gkj00/+KSjTKSkSaLgVHHOwtVYtDRJouBUcDapUWanXsLVEfh4g0XQqOBvTUtScBsE/BISJNmIKjAbVtkQpAwb7SBNdERCR+FBwNqEubdAA27tyX4JqIiMSPgqMBdWgZGpJ7z2tLyd2yO8G1ERGJDwVHA0pKMo7pGroR8I1FmxNcGxGR+IhrcJjZWDNbbma5ZjaphvUPmtn84LXCzHZGrXvDzHaa2dQq+zxjZp9H7Tc8nudQX9NvPotOrdLYsLMo0VUREYmLlHgd2MySgceAMUAeMMfMXnX3JeFt3P3mqO2/D4yIOsQDQEvg2zUc/hZ3nxKXijeArm0zeOGTdaQmG3ePH5ro6oiINKh4tjhGArnuvtrdS4DJwPgDbH858EJ4wd3fBo7IjoJeHVoA8LdZaxNcExGRhhfP4OgJrI9azgvKqjGzLKAvMCPGY99rZguCS13ph1bNhnflyVmJroKISNw0ls7xCcAUd4/lzrnbgEHASUBHYGJNG5nZDWaWY2Y5+fn5DVfTGJx1TCZ9OrWkTUbcrgSKiCRMPINjA9A7arlXUFaTCURdpjoQd9/kIcXA04QuidW03RPunu3u2ZmZmfWodsMYM7grZeV6LoeIND3xDI45wAAz62tmaYTC4dWqG5nZIKADMCuWg5pZ9+C/BlwCLGqwGjeg9i3T2Fdazq4i3UUuIk1L3ILD3cuAG4FpwFLgRXdfbGZ3m9nFUZtOACa7e6U/z81sJvASMNrM8szs/GDV381sIbAQ6AzcE69zOBTZWR0AmLVqW4JrIiLSsOJ6Ed7dXwder1J2R5XlO2vZ94xays9tqPrF07De7UlJMmauzOf8Id0SXR0RkQbTWDrHm5yM1GRG9evIv+dtpEpjSkTkiKbgiKOzj+nCnuIyvv3s3ERXRUSkwSg44qhL29AtJtOXfMHLn+YluDYiIg1DwRFH3du1iLz/5etLE1gTEZGGo+CIo4Hd2kTe9+rQMoE1ERFpOAqOOGrXIpVJ4wYBMH/9Trbs1oy5InLkU3DE2XfO6k/n1qEHPD338boE10ZE5NApOA6DX33leABapCYnuCYiIodOwXEYfOnYLqQkGbuKSrn08Y/4z2cbE10lEZGDpulbDwMzo1V6Co+/uwqAuWt38OVhPRJcKxGRg6MWx2FSsK/6ZIdFpeX8c26e7iwXkSOKWhwJMv7RDzimaxtempvHii27mXj+IJKSLNHVEhGpk1och8k//+8UTurTIbL8WV4BL80N3U3+p/dWc+d/FvPcx3rUrIg0ftYcLpNkZ2d7Tk5OoqsBQGFxGdsLSzjj1+/UuH7NfRce5hqJiNTMzOa6e3bVcrU4DrNW6Sn07tiSoT3b1ri+YK8e/CQijZuCI0Ge/cYopn7/9Grlw+6ezqaCfQmokYhIbBQcCdKhVRpDe7bjb9+o/sj0/3vu0wTUSEQkNgqOBDvzmEz6dW4FQHhQ1dpthQmskYjIgSk4GoEnr8nmrR+dyfjhPQHYsbeURRsK2LanOME1ExGpTvdxNAL9M1sDcOfFQ5i5citb9xRz0SMfADC0Z1v+/d3TSElWxotI46DfRo1Iuxap3HPJkEplizbs4p7XllJcVp6gWomIVKbgaGRGH9u1WtkzH63h0Rm5CaiNiEh1Co5GJrWWS1KPzMjlG8/MYfbqbYe5RiIilSk4GqGa7u8AmLFsC1c/9clhro2ISGUKjkZoaM92tU49UlxWAUBJWQV7S8oOZ7VERACNqmrUnrnuJIpKK+jVoUVklBXA0k27GPfQTM4Y0Jlnrx/F3pIyHpmRS/7uYu6/9HiSNcuuiMSRgqMRO3tgF4Bqz+sY99BMAGau3MpHq7ZyxZOzI+tuHnMMPdu3OHyVFJFmJ66XqsxsrJktN7NcM5tUw/oHzWx+8FphZjuj1r1hZjvNbGqVffqa2ezgmP8ws7R4nkNjYFZ7CyI6NAC27ynhp/9aSM6a7fGulog0U3ELDjNLBh4DxgGDgcvNbHD0Nu5+s7sPd/fhwCPAy1GrHwCuquHQ9wMPuvvRwA7g+njU/0j15Uc/4PnZ6/jJS58luioi0kTFs8UxEsh199XuXgJMBsYfYPvLgRfCC+7+NrA7egML/el9LjAlKPorcElDVrqx++s3RnLjOUcD8I3T+kbK7/vKcZW2W7NtL898+Dm/m76c91bkH9Y6ikjTFs8+jp7A+qjlPGBUTRuaWRbQF5hRxzE7ATvdPTycKC/4nJqOeQNwA8BRRx0Ve60bqZm3nsPeknIGdmvDqf07MbRnO0b17chTH34OwISRR3Fs97aMf+zDyD53/mdJ5P3U75/Ox6u3MXZoN7YXlnB0l9a0TNv/9ZdXuDrVRSQmjaVzfAIwxd0bbF4Nd38CeAJCTwBsqOMmSu+OLSPvU5OTGDu0GwAL7zyPHYWhhz8N692+1v3Do7LueW0pAJ1bp/HxbaP5/gvz6Nu5FX94dxU/GD2AH405Jl6nICJNRDyDYwPQO2q5V1BWkwnA92I45jagvZmlBK2OAx2zWWiTkUqbjNR677d1TwlH/+y/lcoefnslu/aVUlpewT2XDGXxxl2Ullcw4qgOtRxFRJqjeAbHHGCAmfUl9Mt9AnBF1Y3MbBDQAZhV1wHd3c3sHeAyQn0m1wCvNGSlm6JHrxjBsk27efSduue7euajNQBMX/IF+btD07p/NOlc2mSkxBRQizYUMKRH2wOOBBORI1vcOseDFsGNwDRgKfCiuy82s7vN7OKoTScAk73KzQpmNhN4CRhtZnlmdn6waiLwIzPLJdTn8Zd4ncOR6O/fHMX44T0Y1rs9S+4+n5X3juOi43vwrTP7Vdv2ilG19/2EQwPg1PtmcNyd0ykJ7lqvzdQFG7nokQ+YumATAKXlFewp1t3tIk1NXPs43P114PUqZXdUWb6zln3PqKV8NaERW1KD047uzGlHd65W3q5FKpPGDSJnzXaKyyqYuXIrt54/kOdnr4v52Cfd+xadWqdx+0WDObV/J4rLKkhJMnLW7GBQ9zZ8ujZ0G87GnaFnpn/jmTnMXLm11ulTROTI1Fg6x+Uw+M5Z/eGs/mwvLGHhhgLat0zj6etOori0grFDu9Fn0msH3L9gXykF+0q57uk51dYN6taGwd3bArC9sAQI3dkuIk2PJjlshjq2SuOsYzIBOGdgl8gIrYcmDOeOiwYfaNdaLdu8m5fnhcYp/On91bz62cbIuhc+WccHK7dy56uLa9y3uKyc0vL9l8Hmr9/J3pIy/jUvr9p0KyKSeGpxSET4med3T91//8ejV4ygXYtUTuvfmex734q0JurygxfmRd7f9vLCyPuju7Tmf0/OYkdhCRmpybyzfAvf/funAHz7zH58eVgPLom6FyWrUytOOKoDH+Vu5bvPf8p7PzmHdi3rP4pMRBqOgkOqefzKE0hNTqJ/l9b07dwqUv7uLWfz0Fsr+csHnx/0sX/+70WkpSRx65QFjOrbkdmf759T60/vr+b0AZX7Z77yh4948ups/vLBanbuLeXTdTs4Z1AXKiqcVfl7WL9jL+cO6sqzH68lLdkYM7gbrdKTSU9JjrlO0xZv5uVP8/jTVdkHfV4izYmCQ6oZd1z3GsvbZqTSq8Ohz7w7JScPoFJohP3pvdXVym6aPI+2wVDg/3y2kTcWbWbhhgKWbNoFwOK7zuf2fy8CYOI/F/I/I3py7al9+CxvJ28t3cIvvjyYBXk7uWR4T65+6hOSzBjWqx0ff76dF799Ct9+di4Aa7YW0qN9C9JS6r6Cu2VXEW8t3XLAkWkAe0vKKKvwSP1FmgIFh9RLuxahX4D9MluxOr+Q564fRa8OLVi2eTcpSca3n5vLVSdncf3pfclZu52b/1F9ssVPDjBz7we51TvU95aUs7ckNKlAuB8l2pBfTKu0/K95G/hX1Hajf/seAO77O+xrmr/r7N+8C8DqX17AuIdmcv3pffnaSfvvYS2vcErLK8hITeaH/5jPR6u2cUr/TpVaZVWd+5v32LyriDX3Xcimgn20a5FKWnISz328lgkjjyIjNfaWkUhjoeCQerlkeE9SkpMYO6QbO/eW0KVtBgB9gl+eq355QWTb3h1bcs7ALtwyZQGfby0kd8ueWo87adwg/jzzc7buKa51m6O7tD7gMeryoxerh9iEJ2bRKi2ZwpL9s908MH05y7/Yza3/XMDXTurNwrwC1m4v5PnZ61iYV8C8O8ZEgmzbnuJag2NvSRmbdxVFlk/5VWgqtm+d0ZcnZ35OYUk53z6zHw/PyOXaU/vQsVVsTwj4zrNz+SxvJ7NuG12pfM3WQtq2SKVjqzR2F5WyqaCIY7q2iemYIvWh4JB6SUoyLh7WAyASGgfSvmUaT16dTUWF0++n+2/puezEXhQWl/HfRZsBGDe0G985qz+l5RUUlZbz7vJ8zhvSldG/fY+8Hfu4afQAzh/SjQsentmg5/Px6uqtn8ffXQWEWlcVFc6XH/2g0vqCfaW0Dzrob5o8nzsvHsLWPcU8O2st9116HMd0bcMf31vF799aGdnntpcXRN4/OTPUR7SnuIzpS77g4bdXsmRjAU9enc3ctTvo0iaDL3YXsbuoFMM4Z1CXSp//xuLQzyxnzXay+3QE4N3lW7g2GCZ92tGdKK9wPl69nVW/vCAyeWVRaTnTFm/m4mE9KCwp54n3V/O9c/rX2B+04ovd7Cku4wRNNyM1UHDIYZEU/PLq2CqNv39zFP0zW5OWksQT76/il68vo3PrdCA0gWNqchJfDsKpdXron+jFw3twVNREjwdy4XHd+eGXBjDmwfcPqc4F+0o5+VdvVyvfsbeU3h1Cddmwcx/f+ltOZN3Fj35YbXuAFz5ZX60sHFAAby3dwvjHPmRBXkG17e79n6Ec270tI3q3rzSVy2V/rHmWng9zt0Xe58FJWVAAAA8XSURBVO8uplu7UMDf89oSnvt4HT3at+DD3K08/PZK8nbsJSM1mXsvGRo59uKNBVz4cCgs19x3Ie7O5l1FJJnRNYY/Fmoz+ZN1nJDV4aBaQUWl5SzeuIsTsw4cZCu+2M3uolJOzOp4sNWUGFhzGCefnZ3tOTk5dW8ocTVv3Q56tG9R6ZePux9wXqtFGwp4b0U+3wueQfKr15fSq2NLysoruOs/S3j0ihEM6dGOji3TGHb3dADm3zGG9i3TKNhXyq59pZzx63cqHbNfZivWbC2k4iD/6ffPbMWq/MKD2/kQzbt9DCP+35sxb39Kv05MGjeIYb3bM/6xD/ls/U7OPCaT96v08ZzSrxMTRvampKyC91bkR6aNee+Ws7n9lcWR7X992fF8Lbt3pX0feXslJeUV/Pi8gZXKy8orIhNpfnr7GE4I6p177zhSkisPQCgtr6C8wmvt8/nBC/N49bONfPLT0dVauruLSqnwUAsxfBNrTbMVVFQ4t7+yiCtHZTG4R9taf2ZLNu5i/Y69nD+kW63bNAYF+0pJT0mq9jNbumkX//lsI7ecP/CQ54wzs7nuXm24oW4AlMNmxFEdqv3FWtc/7KE920VCA+C2C47lqpOzuO60vqy570IuOr4HfTu3qnRvR4u00P9I7Vqk0rtjS1beO47l94zlshN7AfDs9aN45ydnx1TnzDbp1cqqhsbxvdrFdKxobTP2N/Zb1KOD/PH3VtW9UZRZq7cx/rEPufkf8/lsfWhKmKqhEd7upsnzuWXKgkhoAJz1wLuVtr91ygLKyiv4xjNz+GhVaKDBb99cwSMzclnxxW5ei9p3zpodkfer8vf3Td37+lKKy8r559w8KoL0vvLJ2Qy6/Y1az+OTYATe6fe/w8uf5lVad+I9bzHsrulc/0zlGQ3mrt3OyHvfYkdw79HGgn38ffa6Si3Emlzw8MzISLuqNuzcxw8nz4vMwVZcVk6fSa/x2Du5/G76cnYVlR7w2FVNX7yZr/7xo8jPIWxvSRnn/OZdPlq1lbXbCnnmw8+r3Qw77K7pfLWGVucVT37MH95dxeqthXyYu5XCOMwXp0tV0uSkVflrNjVY/s1Xh/Gbrw6LlC+9eyxvLN5E17YZPD97XeQX5m+/Oozc/D1s3LmPY7u35b7/Lqv1s+b87Eu8mLO+xktMYat/eQFJSVZpSpdvntGP3725AoA7vjyYy0ceVeeULwBPvF99uHIs/lXDaLSDtWHnPmYs28KMZVv4elTr47zg0uBbS3vyvycfxT/m7J8HLfwcGICnP1xD+xZpPPjWCtJTk+jYKi0y0u62lxfQtkUqXz6+B306tyI12Zi3bmdkkEFJeQU/evEzFuQVcOkJvTiuV7vI5JtvL9sS+Yz83cVc+njol+qijQWcMSCTnXtDv9QLS8ooLa8g2YwPcrdy9VOfkNWpJX+55iTWb98bOcbuolKeeH81V52SRZc2GRSXlXP9M3NYtnk3Fw/vweDu7Zi/PhSOD0xbDsDDM3JrnZttT3EZQ38xjV98eTBjBnelV4eW3PjCPErKKlj+xW76ZbZi8cZddG6Vzlm/eQd3uOvVJewtLWP99n2syi/klrEDaZuRGgmahRsKWL99L2f8+h1uGj2Am8ccw77S0MCNX762lLeXbeGtH53F0V1a1+9LroMuVUmT8eysNXyQu/WgbuQrK69g4YaC0D0eUQ/EKiot59T7ZkTumL917EAuGd6TU+8LjZBac9+FzF27nUsfn8VdFw/hq9m9GHzHNMYP70GyGdOXfMGiu0ITO4eDYcJJvfneOUfzi1cXM2PZFv74vycydmg3/j1vA3+dtYZ563Zy2Ym9mDJ3/1/WGalJFJWGfkFeeHz3Sn/ZV1V1lFi043q2Y+GG2kOuIfVol8HGgqIa150zMJN3luczoEtrVtYyUm5kn44HHLoNoTnSlm3efcBtxg7pxiNXjGBAlefP1GXi2EHc/0boj4YLj+9O/q7iOusDoct55w7qgjvsKiqlf2bol/babYWc9cC7ke26tc1gT3EZe4rL6vxOwy4feRTDe7djdX4hf6rhj4jXfnB6pH8qLOfnX4r0IdZXbZeqFBwidXB3VuUXsmHnPkb17UhGanK1a+kVFR4ZALBmayHd22dUG620dlsh2wpLIiOVXluwie89/ykf3zY60oEdbXthCTv2ltCnUyuSk4yzHniHtdv28vDlI7jlpc8oLqvghW+dzLrthRzXsz1/nrmaW8YOZG9JeTCqaht3vBKaH+zdn5xNn86teDFnPbdOWVDts2b8+CzODe53AVh+z1iG3/Vm5K/XI93Ivh0jl7sOh8w26RSXlrOrqIzvnt2fvSXlvDJ/Azv21u9SVlXtW6ZGWk6xWnnvuEiru74UHAoOaUDz1u2gwv2wjt4ZcscbFJaUM+PHZ9GtXQaGRfpzalNe4azZVhj5q7eotJzb/72Il+ZW7idYdNf5DA1upPzl/xzHFaOO4oFpy3jsnVCfSvjeEwj1z+wqqnzd/KEJw7lp8vxqn3/PJUPZW1LGL1+v/XJfLG44s99BX6Y7GEN7tmXRhl2H7fNq0rl1Glv3xDY33IEcymMN1Dku0oBGHNXhsA/5/P2EEZxwVHv6dGpFy7SUOkMDIDnJIqEBkJGazANfHcas287l3987jd9+dRiPXjGC1ukpvPaD01l81/mRaVR+PGYgj14xgv/ceDo/OX8gYwZ35Y0fnsHL3z2NsUO68cr3TuOC47rx1LXZ9Om0/ybIY7u3jXrfhk6t9l8m+cqInkwcO6jGup51TCY/OPfoSmXPf3MUk8YN4qcXHMunt49h6vdPZ/zwHjXu/8lPR7PmvgsZcVT7GtdHu2n0AP75f6dU+pyw+XeMibx/+rqTKu3360uPZ+at53DT6AH0i7rx8+pTsrjq5Kxqn3NDDQ9Qq+rhy0cAcMnwHvzhyhOYOHYQJ2Z1YPrNZ9GzfWiKnz9ceUKN+75585nVyqJ//nHj7k3+deKJJ7qIxNe6bYVeUVHh7u5l5RX+ef4ed3dfvKHAsyZO9Wuemu3l5RVeVFrmj7y9wv88c7VnTZzqm3bu87Ly0H4v5az3rIlTPWviVF+zdU+Nn1NRUeE7Cot93rodXlRa5r9+Y6kv3VRQaZv3lm/xrIlT/YonZ0XqsTBvp7+5eLPnrNkeqWf4s9zdC4tLI+UfrMz3U3/1tu8uKvUn31/lUz/b6A+/tSKyPuziR2b6b6ctc3f3eet2eNbEqf7+ii3u7r6vpMzd3cuDc7v1pc88a+JUf3Px5sjnfvL5Nnd337q7yItLy6ud68K8nf7UB6u9vLzCv/nXOZ41caqv317o5/3uPf9wZb5XVFT4+Ec/8KyJU/3MX8/w/y7c6EWlZf7Frn0+e/U2n7Hsi9i+vFoAOV7D71RdqhKRuCvYW1ptOnx3p6S8olJf0L6Scu5/Yxk3jR5AhxinYKnNhp37In+x1+ZA930cDD/AfUll5RV8llfAiVkdKNhXSovU5Jgm1AwrKi2nYF9ptSHtH63ayhVPzuZLx3blz9c07AzP6uNQcIhIFe8s20LLtGRG9euU6KoctPIK57fTl3PtaX3o0ubg7+yvSW3Bofs4RKTZqjoP2JEoOcm4tZZ+o3hR57iIiNSLgkNEROpFwSEiIvWi4BARkXpRcIiISL0oOEREpF4UHCIiUi8KDhERqZdmcee4meUDaw9y987A1gaszpFA59w8NLdzbm7nC4d+zlnunlm1sFkEx6Ews5yabrlvynTOzUNzO+fmdr4Qv3PWpSoREakXBYeIiNSLgqNuTyS6Agmgc24emts5N7fzhTids/o4RESkXtTiEBGRelFwiIhIvSg4amFmY81suZnlmtmkRNenoZhZbzN7x8yWmNliM7spKO9oZm+a2crgvx2CcjOzh4OfwwIzOyGxZ3DwzCzZzOaZ2dRgua+ZzQ7O7R9mlhaUpwfLucH6Poms98Eys/ZmNsXMlpnZUjM7pal/z2Z2c/DvepGZvWBmGU3tezazp8xsi5ktiiqr9/dqZtcE2680s2vqUwcFRw3MLBl4DBgHDAYuN7PBia1VgykDfuzug4GTge8F5zYJeNvdBwBvB8sQ+hkMCF43AI8f/io3mJuApVHL9wMPuvvRwA7g+qD8emBHUP5gsN2R6CHgDXcfBAwjdO5N9ns2s57AD4Bsdx8KJAMTaHrf8zPA2Cpl9fpezawj8AtgFDAS+EU4bGLi7npVeQGnANOilm8Dbkt0veJ0rq8AY4DlQPegrDuwPHj/J+DyqO0j2x1JL6BX8D/UucBUwAjdUZtS9TsHpgGnBO9Tgu0s0edQz/NtB3xetd5N+XsGegLrgY7B9zYVOL8pfs9AH2DRwX6vwOXAn6LKK21X10stjpqF/wGG5QVlTUrQNB8BzAa6uvumYNVmoGvwvqn8LH4P3ApUBMudgJ3uXhYsR59X5JyD9QXB9keSvkA+8HRwee7PZtaKJvw9u/sG4DfAOmAToe9tLk37ew6r7/d6SN+3gqOZMrPWwD+BH7r7ruh1HvoTpMmM0zazi4At7j430XU5jFKAE4DH3X0EUMj+yxdAk/yeOwDjCYVmD6AV1S/pNHmH43tVcNRsA9A7arlXUNYkmFkqodD4u7u/HBR/YWbdg/XdgS1BeVP4WZwGXGxma4DJhC5XPQS0N7OUYJvo84qcc7C+HbDtcFa4AeQBee4+O1ieQihImvL3/CXgc3fPd/dS4GVC331T/p7D6vu9HtL3reCo2RxgQDAaI41QB9urCa5TgzAzA/4CLHX330WtehUIj6y4hlDfR7j86mB0xslAQVST+Ijg7re5ey9370Pou5zh7lcC7wCXBZtVPefwz+KyYPsj6i9zd98MrDezgUHRaGAJTfh7JnSJ6mQzaxn8Ow+fc5P9nqPU93udBpxnZh2Cltp5QVlsEt3J01hfwAXACmAV8LNE16cBz+t0Qs3YBcD84HUBoWu7bwMrgbeAjsH2RmiE2SpgIaERKwk/j0M4/7OBqcH7fsAnQC7wEpAelGcEy7nB+n6JrvdBnutwICf4rv8NdGjq3zNwF7AMWAQ8C6Q3te8ZeIFQH04poZbl9QfzvQLfCM49F7iuPnXQlCMiIlIvulQlIiL1ouAQEZF6UXCIiEi9KDhERKReFBwiIlIvCg4REakXBYeIiNTL/wdEX0x2x9tpjQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light",
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 每个epoch的平均loss\n",
    "plt.plot(range(1,len(loss_epochMean_list)+1),loss_epochMean_list)\n",
    "plt.title('loss_epoch')\n",
    "plt.ylabel('loss')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 281
    },
    "id": "3BNwheCNlDs5",
    "outputId": "5451d1e9-27da-4281-96fa-561da446059b"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light",
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 每个loader批的最后一个accuracy\n",
    "plt.plot(range(1,len(accuracy_epoch_list)+1),accuracy_epoch_list)\n",
    "plt.title('accuracy_epoch')\n",
    "plt.ylabel('accuracy')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 281
    },
    "id": "V2POjQ4ZntSb",
    "outputId": "a5034bfc-04e4-4d11-dbf9-28afec1cf8f6"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light",
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 每个epoch的平均accuracy\n",
    "plt.plot(range(1,len(accuracy_mean_list)+1),accuracy_mean_list)\n",
    "plt.title('accuracy_mean_epoch')\n",
    "plt.ylabel('accuracy_mean')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## cnews_loader.py模块"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import tensorflow.keras as kr\n",
    "\n",
    "# 读取词汇表\n",
    "def read_vocab(vocab_dir):\n",
    "    with open(vocab_dir, 'r', encoding='utf-8', errors='ignore') as fp:\n",
    "        words = [_.strip() for _ in fp.readlines()] #所有字及符号words[:15] ['<PAD>', '，', '的', '。', '一', '是', '在', '0', '有', '不', '了', '中', '1', '人', '大']\n",
    "    word_to_id = dict(zip(words, range(len(words))))# 给所有字及符号从0开始编号'<PAD>': 0, '，': 1, '的': 2, '。': 3, '一': 4, '是': 5, '在': 6, '0': 7, '有': 8, '不': 9, '了': 10, '中': 11\n",
    "    return words, word_to_id\n",
    " \n",
    " \n",
    "# 读取分类目录，固定\n",
    "def read_category():\n",
    "    categories = ['体育', '财经', '房产', '家居', '教育', '科技', '时尚', '时政', '游戏', '娱乐']\n",
    "    # categories = [x for x in categories]\n",
    "    cat_to_id = dict(zip(categories, range(len(categories)))) \n",
    "    return categories, cat_to_id\n",
    " \n",
    " \n",
    "# 将文件转换为id表示\n",
    "def process_file(filename, word_to_id, cat_to_id, max_length=600):\n",
    "    contents, labels = [], []\n",
    "    with open(filename, 'r', encoding='utf-8', errors='ignore') as f:\n",
    "        for line in f:\n",
    "            try:\n",
    "                label, content = line.strip().split('\\t')\n",
    "                if content:\n",
    "                    contents.append(list(content)) # [['马', '晓', '旭', '意', '外', '受', '伤'\n",
    "                    labels.append(label) # ['体育', '体育', '体育', '体育', '体育',\n",
    "            except:\n",
    "                pass\n",
    "    data_id, label_id = [], []\n",
    "    for i in range(len(contents)):\n",
    "        data_id.append([word_to_id[x] for x in contents[i] if x in word_to_id])#将每句话id化\n",
    "        label_id.append(cat_to_id[labels[i]])#每句话对应的类别的id\n",
    "    #\n",
    "    # # 使用keras提供的pad_sequences来将文本pad为固定长度\n",
    "    x_pad = kr.preprocessing.sequence.pad_sequences(data_id, max_length) #(1000,600)\n",
    "    y_pad = kr.utils.to_categorical(label_id, num_classes=len(cat_to_id))  # 将标签转换为one-hot表示(1000,10)\n",
    "    #\n",
    "    return x_pad, y_pad"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## model模块"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "# TextRNN Model\n",
    "\n",
    "import torch\n",
    "from torch import nn\n",
    "import torch.nn.functional as F\n",
    " \n",
    "# 文本分类，RNN模型\n",
    "class TextRNN(nn.Module):   \n",
    "    def __init__(self):\n",
    "        super(TextRNN, self).__init__()\n",
    "        # 三个待输入的数据\n",
    "        self.embedding = nn.Embedding(5000, 64)  #  进行词嵌入\n",
    "        # self.rnn = nn.LSTM(input_size=64, hidden_size=128, num_layers=2, bidirectional=True)\n",
    "        self.rnn = nn.GRU(input_size=64, hidden_size=128, num_layers=2, bidirectional=True)\n",
    "        self.f1 = nn.Sequential(nn.Linear(256,128),\n",
    "                                nn.Dropout(0.8),\n",
    "                                nn.ReLU())\n",
    "        self.f2 = nn.Sequential(nn.Linear(128,10),\n",
    "                                nn.Softmax())\n",
    " \n",
    "    def forward(self, x):\n",
    "        x = self.embedding(x)\n",
    "        x,_ = self.rnn(x)\n",
    "        x = F.dropout(x,p=0.8)\n",
    "        x = self.f1(x[:,-1,:])\n",
    "        return self.f2(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "VJA963WGop1U"
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "accelerator": "GPU",
  "colab": {
   "collapsed_sections": [],
   "name": "Action_cnews.ipynb",
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
